踩坑批量更新sql报错,实际sql能够正常执行的问题
作者:Baichi_00
在项目工程迁移过程中,遇到了一个批量更新接口在新工程中报错的问题,通过分析,排除了代码错误的可能,最终发现是由于数据库连接配置不当导致的,在jdbc连接字符串中加入allowMultiQueries=true参数后,问题得以解决,这个参数的作用是允许SQL批量执行
踩坑描述
项目工程迁移之后,新工程与老工程的代码一样,其中一个批量更新的接口在之前老工程上稳定运行,但是迁移之后上线的新工程却报错了
报错信息日志如下:
分析原因
1、看见此报错
第一反应是批量更新的代码写错了,仔细检查并未发现问题
2、将报错日志中的SQL复制下来
看是否能够执行成功,结果很奇怪,竟然执行成功了
3、此时陷入了沉思
代码没问题啊,为啥报错信息为sql错了呢?
只有换一个思路来思考了,从项目代码环境去思考,于是检查了数据库版本,数据库连接配置等。
解决方案
在配置文件中的jdbc连接信息加上allowMultiQueries=true配置,其作用是允许sql批量执行处理,可以在sql语句后携带分号,实现多语句执行。
反思总结
真坑爹啊,一个思路行不通,就换一个思路,既然代码没问题,那就从其他层面思考,不要只顾着检查代码是否正确,从而浪费了大量排查问题的时间~~
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。