昨天开发项目遇到一个问题:我service执行一次对数据库的更新操作,但是这个update语句是执行两条sql,结果在测试环境上就报错!
1.报错信息的日志文件显示:
2.我service调用的一次update请求是这个:
sysEleMaterialClassService.updateChildParentId();
3.这个方法最终执行xml文件里配置的sql是这样的:
然后本地执行是没问题,但是在测试环境就是不行。也不知道啥问题。我想着我这也是一次请求,写几条sql也应该是按顺序给执行才对。根本不是这回事。。。百度看别人的解决方法。才知道原因。这里也说一下:mysql驱动验证sql合法性时,sql被截断,它认为一次性发过去的多条sql是不合法的。这样做不行,是因为你没有让mysql驱动开启批量执行sql的开关。
4.解决办法:
怎么开启呢?在拼装mysql链接的url时,为其加上allowMultiQueries
参数,设置为