下面給大家介紹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執行批量更新batch update 的方法(oracle,mysql兩種)
以上所述是小編給大家介紹的詳解Mybatis批量更新報錯,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對武林網網站的支持!
新聞熱點
疑難解答