1
|
allowMultiQueries= true |
后來發現是jdbc鏈接沒有加允許批量更新操作的參數引起的,不加會報badsql,mysql版的mybatis批量更新操作如下
1
2
3
4
5
6
7
8
9
|
<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批量更新數據的方式
第一種方式
1
2
3
4
5
6
7
8
9
|
<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
1
2
3
4
5
6
7
8
9
|
<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批量更新報錯,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對服務器之家網站的支持!