下面给大家介绍mybatis批量更新报错问题,
allowmultiqueries=true
后来发现是jdbc链接没有加允许批量更新操作的参数引起的,不加会报badsql,mysql版的mybatis批量更新操作如下
<update id="updateorderoverduestatus" parametertype="java.util.list"> <foreach collection="list" item="item" index="index" open="" close="" separator=";"> update t_am_bystages_order <set> overdue_status=#{item.overduestatus} </set> where order_id=#{item.orderid} </foreach> </update>
下面看下mybatis批量更新数据的方式
第一种方式
<update id="updatebatch" parametertype="map"> update aa set a=#{fptm}, b=#{csoftrain} where c in <foreach collection="cs" index="index" item="item" pen="("separator=","close=")"> #{item} </foreach> </update>
但是这种方式修改的字段值都是一样的。
第二种方式
修改数据库连接配置:&allowmultiqueries=true
比如:jdbc:mysql://192.168.1.236:3306/test?useunicode=true&characterencoding=utf-8&allowmultiqueries=true
<update id="batchupdate" parametertype="java.util.list"> <foreach collection="list" item="item" index="index" open="" close="" separator=";"> update test <set> test=${item.test}+1 </set> where id = ${item.id} </foreach> </update>
这种方式,可以一次执行多条sql语句
参考:
以上所述是小编给大家介绍的详解mybatis批量更新报错,希望对大家有所帮助
如对本文有疑问, 点击进行留言回复!!
android sdk源码 andoid-21 下的TextUtils.java文本工具类 源码赏析
地理坐标(WGS84),投影坐标下(Mercator)切片系统的计算Java类
荐 JavaWeb~简单认识以太网、MAC地址、MTU机制、ARP协议、DNS协议
HUAWEI MH5000-31 LGA Module Hardware Guide draft
网友评论