springboot+mybatis-plus 数据表字段是关键字的问题解决

项目里有个数据表yy_key_value,字段有key、value,保存一些基本参数数据。

原来使用框架是springmvc+mybatis,sql语句写到xml文件里,包括基本的DML语句(这样不好。。),涉及到key字段时,加了``,如下

select `key`,value from yy_key_value where `key`=?

这样是没问题的(key是mysql里的关键字,直接写会报错)

但最近项目升级,使用了springboot+mybatis-plus框架,可以利用工具生成相关代码 :

public static void main(String[] args) {
    // 代码生成器
    AutoGenerator mpg = new AutoGenerator();

    // 全局配置
    GlobalConfig gc = new GlobalConfig();
    String projectPath = System.getProperty("user.dir") + "/one-code-generator/output";
    gc.setOutputDir(projectPath + "/src/main/java");
    gc.setAuthor(Author);
    gc.setOpen(false);

 基本的DML语句直接引用即可

#service类

public interface IYyKeyValueService extends IService {
     YyKeyValue findValueByKey(String key);
}
@Override
    public YyKeyValue findValueByKey(String key) {
        QueryWrapper wrapper = new QueryWrapper<>();
        wrapper.eq("`key`", key);
//        wrapper.lambda().eq(YyKeyValue::getKey, key);
        return yyKeyValueMapper.selectOne(wrapper);
    }

组装好QueryWrapper参数后,调用mybatis-plus里的BaseMapper的selectOne方法,最终会生成语句

select key,value from `key`='111'

where条件后的key可以通过 QueryWrapper指定没问题,但前面查询出来的字段名这样写会报错

[SQL] select key,value from yy_key_value where `key`='a'

[Err] 1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'key,value from yy_key_value where `key`='a'' at line 1

因为是旧项目升级,如果要变更数据库字段名,会有很大的工作量。最后发现,只要在对象javabean里加个注释即可解决问题

springboot+mybatis-plus 数据表字段是关键字的问题解决_第1张图片

 特记录下。还有就是数据表、字段定义不要使用一些关键字~~~~~~~

你可能感兴趣的:(java,mybatis,数据库)