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批量更新报错,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对服务器之家网站的支持!