背景:最近协助远程同事开发一个功能,我调用同事写的接口,发现报错,,同事正在处理其他事情,暂时无暇顾及。遂自行解决。查看日志发现,发现一个inser语句报语法错误。
解决过程:
1、找到报错的日志,查看sql。如果没有,打开mybatis-plus日志输出。
2、将sql复制出来在mysql客户端模拟执行,发现sql亦报同样的错误。
3、遂仔细查看sql,核对数据库字段,类型,mapper文件,jav代码。未发现异常,大部分代码都是自动生成的,也不会出错。
4、花了将近一个小时,才破案:
sql如下:
INSERT INTO table( xxx1, xxx2, xxx3, xxx4, `desc`) VALUES ( 'aaa', 'bbb', 'ccc', 'ddd', '我是描述' );
重点就是 `desc` 字段。
desc是MySQL的保留字,一般不建议使用它。但是,如果您仍想将列名设置为“ desc”,则需要使用反引号。反引号表示法是(``)。
因此最后,给java代码设置TableField注解指定映射字段:
@TableField("`desc`") private String desc;
同时在xml的Base_Column_List字段列表中,也要给该字段加上反引号。一般情况下,这个自动生成的代码都会有。
标签:语法错误,引号,Mysql,排查,sql,日志,代码,desc From: https://www.cnblogs.com/hbuuid/p/17927742.html