这个bug在很早前就出现了,刚好今天又出现一次,顺便记录一下。
起因:使用MybatisPlus中自带的增删改查方法时,出现了SQL错误,既然是MybatisPlus的自带方法,应该不可能出现SQL错误
boolean save = leaveService.save(leave);
经过排查,发现创建表的人将表创建成了关键字 leave,执行这个sql的时候也会出现错误
select * from leave;
解决:在实体类上加上该注解,并在表名上加上反引号:``,这样使用框架时,生成的SQL的表名就会添加反引号。
@Data
@TableName("`leave`")
public class Leave implements Serializable {}
例:
select * from `leave`;
所以我们在创建表的时候尽量不用创建成Mysql的关键字,如果不知道是不是关键字,可以在创建表的时候加上项目前缀:例如 :sys_leave