1.我service调用的一次update请求是这个:
sysEleMaterialClassService.updateChildParentId();- 1
2.这个方法最终执行xml文件里配置的sql是这样的:

然后本地执行是没问题,但是在测试环境就是不行。也不知道啥问题。我想着我这也是一次请求,写几条sql也应该是按顺序给执行才对。根本不是这回事。。。百度看别人的解决方法。才知道原因。这里也说一下:mysql驱动验证sql合法性时,sql被截断,它认为一次性发过去的多条sql是不合法的。这样做不行,是因为你没有让mysql驱动开启批量执行sql的开关。
3.解决办法:
怎么开启呢?在拼装mysql链接的url时,为其加上allowMultiQueries参数,设置为true,如下:
jdbc.jdbcUrl=jdbc:mysql://127.0.0.1:3306/database?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true- 1
加了参数后,我又将mybatis配置文件改了回去,测试一下,执行成功。
本文介绍了一次请求中执行多条SQL时遇到的问题及解决方法。原因是MySQL驱动默认不允许批量执行多条SQL,通过在连接URL中添加allowMultiQueries=true参数解决了该问题。
1554

被折叠的 条评论
为什么被折叠?



