MyBatis批量更新(update foreach)报错问题
MyBatis批量更新报错解决
在使用mybatis执行批量更新(update foreach)数据的时候
报错如下:
org.springframework.jdbc.BadSqlGrammarException:
### Error updating database. Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: 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 '......
### The error may involve ....
### The error occurred while setting parameters ### SQL:
刚开始一直以为是自己SQL写错了,但是检查N遍,发现也没问题,而且到Navicat中执行也没说SQL报错,
批量更新SQL如下:
<!--批量更新报表 --> <update id="updateBatchUser" parameterType="java.util.List"> <foreach collection="userList" item="item" index="index" separator=";"> update sys_user <set> <if test="item.userName != null and item.userName!= ''">user_name = #{item.userName}, </if> <if test="item.userNo != null">user_no = #{item.userNo }, </if> ... updated_time = now() </set> where id = #{item.id} </foreach> </update>
解决方案
MySQL的批量更新是要我们主动去设置的
使用mybatis进行批量插入与更新时
必须在配置连接url时加上 &allowMultiQueries=true 即可
jdbc:mysql://xx:3306/test?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&rewriteBatchedStatements=true&allowMultiQueries=true
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
SpringBoot教程_创建第一个SpringBoot项目
这篇文章主要介绍了SpringBoot教程_创建第一个SpringBoot项目,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2022-06-06Spring Boot 2结合Spring security + JWT实现微信小程序登录
这篇文章主要介绍了Spring Boot 2结合Spring security + JWT实现微信小程序登录,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2021-01-01Java异常处理之java.lang.ClassCastException问题
这篇文章主要介绍了Java异常处理之java.lang.ClassCastException问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教2024-07-07
最新评论