com.alibaba.druid.sql.parser.ParserException- syntax error, expect ), pos 40, line 1, column 41, tok

  本篇文章为你整理了com.alibaba.druid.sql.parser.ParserException: syntax error, expect ')', pos 40, line 1, column 41, token EOF()的详细内容,包含有 com.alibaba.druid.sql.parser.ParserException: syntax error, expect ')', pos 40, line 1, column 41, token EOF,希望能帮助你了解 com.alibaba.druid.sql.parser.ParserException: syntax error, expect ')', pos 40, line 1, column 41, token EOF。

  使用mybatis-plus批量插入的时候报错信息为:com.alibaba.druid.sql.parser.ParserException: syntax error, expect ), pos 40, line 1, column 41, token EOF

  排查sql日志发现生成的sql为:

  Preparing: INSERT INTO ods_zq_zqgs_zqtz_m VALUES

  merge sql error, dbType mysql, druid-1.1.22, sql : INSERT INTO ods_zq_zqgs_zqtz_m VALUES
com.alibaba.druid.sql.parser.ParserException: syntax error, expect ), pos 40, line 1, column 41, token EOF

  可以看出,是sql语法错误,缺失了小括号), 看上面的语句很明显可以看出,生成的sql语句values后面缺失了括号。

  

  SQL缺失括号的原因

  mybatis-plus批量插入的字段生成依赖对象的属性值,当对象属性值都是null的时候,就发生了上述错误!总得来说算是mybatis-plus的bug。但是考虑的业务上居然插入了一条全是null的记录,确实也不合理!所以说,这个bug的抛出来让开发者解决也可以理解。

  

  解决办法

  注意插入的对象是否全部属性为null,将某些属性赋值值,或干脆去除此记录即可!

  

  以上就是com.alibaba.druid.sql.parser.ParserException: syntax error, expect ')', pos 40, line 1, column 41, token EOF()的详细内容,想要了解更多 com.alibaba.druid.sql.parser.ParserException: syntax error, expect ')', pos 40, line 1, column 41, token EOF的内容,请持续关注盛行IT软件开发工作室。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: