记录一次由于SQL注释导致的SQL报错问题

65 阅读1分钟

在代码调试阶段,前端同事说有一个接口报错,查看日志显示SQL语法错误,部分SQL截图如下:

image.png

一开始以为是条件参数拼接有误,但是查看条件全是空的,大概看了两分钟,没看出问题来,于是DEBUG调试,并打开插件MybatisLog,可以看到完整的SQL。 完整SQL如下:

image.png

这一看就发现了问题所在,由于使用了Mybatis-Plus的分页功能,自动拼接')TOTAL'到SQL最后面,但是由于我错误地使用注释导致自动拼接部分也被注释掉了,所以导致SQL错误。 把注释修改后如图:

image.png 正确拼接的SQL如下,此时注释不会出现在SQL中,运行正常

image.png

总结:在xml写SQL时避免使用'#'注释,而是使用标签语言,在执行过程中会忽略掉注释,避免SQL出现意想不到的错误。虽然借助插件快速定位到了问题,但是意外发现了自己以前忽略的问题,避免了后续出错的可能,所以写下来记录。