Mybatis批量更新踩坑-Mysql配置allowMultiQueries=true允许批量更新

本文介绍了在使用Mybatis进行批量更新时遇到的SQL语法错误问题。问题源于配置,而非SQL本身。解决办法是在数据库连接URL中添加'allowMultiQueries=true'参数,使得MySQL允许执行包含多条语句的请求。此设置可用于执行包含分号的多语句或批量处理。
摘要由CSDN通过智能技术生成

问题

先带大家看一段SQL的配置

<update id="updateStatusByMid">
    <foreach collection="list" item="item" index="index" open="" close="" separator=";">
      update sms_detail
      <set>
        status= #{item.status}
      </set>
      where mid= #{item.mid}
    </foreach>
  </update>

这里用到了Mybatis的动态SQL,看似很正常的一段SQL。可是,只要一执行起来就报语法错误。

解决方案

开始以为是 SQL的问题,后来排查发现是数据库配置的问题。Mybatis批量插入时必须在连接地址后面加allowMultiQueries=true这个参数。

作用

MySQL连接数据库时,添加语句:“allowMultiQueries=true”的作用:
1.可以在sql语句后携带分号,实现多语句执行。
2.可以执行批处理,同时发出多个SQL语句。

参考文献

https://www.ahfesco.com.cn/affairs/Article.asp?id=3232
https://blog.csdn.net/wangmeng951011/article/details/67640027

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值