MyBatis - 批量更新(update foreach)报错

在使用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 sys_user
   
    user_name = #{item.userName}, 
    user_no = #{item.userNo }, 
    ...
    updated_time = now()
   
   where id = #{item.id} 
  
 
解决方案

MySQL的批量更新是要我们主动去设置的,使用mybatis进行批量插入与更新时,必须在配置连接url时加上 &allowMultiQueries=true 即可

MyBatis - 批量更新(update foreach)报错_第1张图片

jdbc:mysql://xx:3306/test?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&rewriteBatchedStatements=true&allowMultiQueries=true

你可能感兴趣的:(mybatis)