mybatis-plus查询字段中含有关键词时异常的问题及解决方案
作者:TTc_
本文主要介绍了在使用MyBatis-Plus进行数据库操作时,遇到字段名与SQL关键字冲突的问题,通过分析和解决过程,作者发现是由于实体类中字段名与SQL关键字一致导致的错误,解决方法是在实体类中使用@TableField注解,并在字段名前后加上反引号(``),以避免SQL解析错误
问题分析思路
1.用自动生成代码工具生成的增删改查代码,发现都用不了
报错原因都是sql错误。
2.然后我就把日志打印生成的sql复制到数据库去执行 发现也查询不出来,会像下面这样

3.查询报错了,我就改变了如下的查询方式,用select * 查出来了记录,说明还是上面的sql有问题

4.定位问题以后,知道是sql的问题,我就看字段发现有一个大写的字段好像是关键字,于是我就加上了反引号 `order`去查询就成功了。

5.由于查询语句是从日志打印里面copy出来的,所以就断定肯定也是同样的问题导致的原因,此时我也断定问题就在这里,就去网上找到了加上反引号的注解
@TableField("`order`")也算是学习到了新的注解用法,原来只知道
@TableField(value = "false")
这种用法
解决办法
在实体类上加上注解并加上反引号

总结
是由于查询的时候mybatiplus不能识别你的字段是否为关键字,这是需要你手动在创建实体类的时候在关键字字段的上面加上注解@TableField("`order`")用反引号包起来。
这个反引号里面的order是一个关键字,包起来就可以解决了。
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
