Mybatis批量更新报错问题
下面给大家介绍mybatis批量更新报错问题,
allowMultiQueries=true
后来发现是jdbc链接没有加允许批量更新操作的参数引起的,不加会报badsql,mysql版的mybatis批量更新操作如下
<updateid="updateOrderOverdueStatus"parameterType="java.util.List"> <foreachcollection="list"item="item"index="index"open=""close=""separator=";"> updatet_am_bystages_order <set> overdue_status=#{item.overdueStatus} </set> whereorder_id=#{item.orderId} </foreach> </update>
下面看下Mybatis批量更新数据的方式
第一种方式
<updateid="updateBatch"parameterType="Map"> updateaaset a=#{fptm}, b=#{csoftrain} wherecin <foreachcollection="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
<updateid="batchUpdate"parameterType="java.util.List"> <foreachcollection="list"item="item"index="index"open=""close=""separator=";"> updatetest <set> test=${item.test}+1 </set> whereid=${item.id} </foreach> </update>
这种方式,可以一次执行多条SQL语句
参考:
mybatis执行批量更新batchupdate的方法(oracle,mysql两种)
以上所述是小编给大家介绍的详解Mybatis批量更新报错,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对毛票票网站的支持!