mybatis一次请求在执行多条sql失败的问题解决。

昨天开发项目遇到一个问题:我service执行一次对数据库的更新操作,但是这个update语句是执行两条sql,结果在测试环境上就报错!
1.报错信息的日志文件显示:
这里写图片描述
2.我service调用的一次update请求是这个:

sysEleMaterialClassService.updateChildParentId();

3.这个方法最终执行xml文件里配置的sql是这样的:

这里写图片描述
然后本地执行是没问题,但是在测试环境就是不行。也不知道啥问题。我想着我这也是一次请求,写几条sql也应该是按顺序给执行才对。根本不是这回事。。。百度看别人的解决方法。才知道原因。这里也说一下:mysql驱动验证sql合法性时,sql被截断,它认为一次性发过去的多条sql是不合法的。这样做不行,是因为你没有让mysql驱动开启批量执行sql的开关。
4.解决办法:
怎么开启呢?在拼装mysql链接的url时,为其加上allowMultiQueries参数,设置为true,如下:

jdbc.jdbcUrl=jdbc:mysql://127.0.0.1:3306/database?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true

加了参数后,我又将mybatis配置文件改了回去,测试一下,执行成功。

猜你喜欢

转载自blog.csdn.net/zhanglf02/article/details/80909873