Mybatis Plus SQL语句中 字段为数据库关键字的解决方案

问题描述

今天在写demo项目时,使用Spring Boot + Mybatis组合技术作为项目框架,在数据查询、插入时提示SQL不规范,报错如下:

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 'group FROM system_user_agent LIMIT 1000' at line 1

对该保存进行分析,可以看出是在“group”附近有错误规范的SQL语句。

 

问题排查

经排查,表结构中有一个“group”字段,group是数据库的关键字(group by),故Mybatis Plus在执行SQL时会提示上述错误。

 

解决方案

虽然在实际开发过程中,肯定是会避免数据库关键字作为表字段的,既然该问题发生了,那肯定得想办法解决!

最终的解决方案是,在Mybatis Plus生成的实体类的group字段头部加上注解。

@TableField(value="`group`")
private String group;

原先该字段是没有自动添加注解的,这里我们手动添加上该注解,并且按MySQL数据库规范加上`,告知SQL这是一个需要处理的字段。

 

同样,如果数据库为SQLSERVER,可以在注解内的内容加上[]进行标记。

你可能感兴趣的:(mybatis,plus,sqlserver,mysql)