Mybatis批量更新报错问题
程序员文章站
2024-03-07 13:43:51
下面给大家介绍mybatis批量更新报错问题,
allowmultiqueries=true
后来发现是jdbc链接没有加允许批量更新操作的参数引起的,不加...
下面给大家介绍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批量更新报错,希望对大家有所帮助