MyBatis批量更新(update foreach)报错问题

 更新时间:2024年08月19日 10:38:02   作者:MinggeQingchun  
这篇文章主要介绍了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

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Nacos动态配置管理机制方式

    Nacos动态配置管理机制方式

    这篇文章主要介绍了Nacos动态配置管理机制方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-07-07
  • java 中内部类的实例详解

    java 中内部类的实例详解

    这篇文章主要介绍了java 中内部类的实例详解的相关资料,希望通过本文能帮助到大家,需要的朋友可以参考下
    2017-09-09
  • 解析springboot包装controller返回值问题

    解析springboot包装controller返回值问题

    这篇文章主要介绍了springboot包装controller返回值问题,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-12-12
  • java 生成文字图片的示例代码

    java 生成文字图片的示例代码

    本篇文章主要介绍了java 生成文字图片的示例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-08-08
  • Java基础教程之对象的方法与数据成员

    Java基础教程之对象的方法与数据成员

    这篇文章主要介绍了Java基础教程之对象的方法与数据成员,本文讲解对象的方法与数据成员相关知识,因为java是面向对象语言,本文的知识都是经常要用到的,需要的朋友可以参考下
    2014-08-08
  • Spring中使用事务嵌套时需要警惕的问题分享

    Spring中使用事务嵌套时需要警惕的问题分享

    最近项目上有一个使用事务相对复杂的业务场景报错了。在绝大多数情况下,都是风平浪静,没有问题。其实内在暗流涌动,在有些异常情况下就会报错,这种偶然性的问题很有可能就会在暴露到生产上造成事故,那究竟是怎么回事呢?本文就来简单讲讲
    2023-04-04
  • Spring Boot 静态资源处理方式

    Spring Boot 静态资源处理方式

    这篇文章主要介绍了Spring Boot 静态资源处理方式,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2018-09-09
  • Spring 与 JDK 线程池的简单使用示例详解

    Spring 与 JDK 线程池的简单使用示例详解

    这篇文章主要介绍了Spring 与 JDK 线程池的简单使用,本文通过示例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-09-09
  • 浅析Java中局部变量与成员变量同名解决技巧

    浅析Java中局部变量与成员变量同名解决技巧

    在刚开始学习Java的时候,就了解了Java基础中的变量,虽然知道这个以后会经常用到,但没想到了基本语法这里,竟然又冒出来了成员变量和局部变量。变来变去太容易让人搞晕了,今天我们就挑拣出来梳理一下!
    2016-07-07
  • Java C++题解leetcode字符串轮转KMP算法详解

    Java C++题解leetcode字符串轮转KMP算法详解

    这篇文章主要为大家介绍了Java C++题解leetcode字符串轮转KMP算法详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-09-09

最新评论