先看sql
<select id="updateListId" parameterType="java.util.List">
<foreach item="item" index="index" collection="list" open="" separator=";" close="">
update tb_archive
<set>YESORNO=#{item.YESORNO}</set>
WHERE BIZ_FLOW_NO=#{item.bizFlowNo}
</foreach>
</select>
这条sql是没有问题的,但是呢他报了一个我无法理解的错误,接下来看看这个错误
### Error updating database. Cause: java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'update tb_archive
SET YESORNO=2
WHERE BIZ_FLOW_NO='31b204fe-e708-49bd-bc' at line 5
### The error may exist in file [C:\Users\29086\Desktop\yfzyt-springBoot\target\classes\mapper\oracle\archive.xml]
### The error may involve ycl.archive.updateListId-Inline
### The error occurred while setting parameters
### SQL: update tb_archive SET YESORNO=? WHERE BIZ_FLOW_NO=? ; update tb_archive SET YESORNO=? WHERE BIZ_FLOW_NO=? ; update tb_archive SET YESORNO=? WHERE BIZ_FLOW_NO=?
### Cause: java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'update tb_archive
SET YESORNO=2
WHERE BIZ_FLOW_NO='31b204fe-e708-49bd-bc' at line 5
; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'update tb_archive
SET YESORNO=2
WHERE BIZ_FLOW_NO='31b204fe-e708-49bd-bc' at line 5] with root cause
java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'update tb_archive
SET YESORNO=2
WHERE BIZ_FLOW_NO='31b204fe-e708-49bd-bc' at line 5
我当时就疑惑,是不是我写的sql有问题,检查了很多遍,还是看不出哪里存在问题,后面在百度上面查,最终在在一片文章上看到执行批量sql必须要在配置文件中url后面加&allowMultiQui
Queries=true,呜呜呜加了这个终于好了。踩坑记录一下。