当前位置: 移动技术网 > IT编程>开发语言>Java > Mybatis批量更新报错问题

Mybatis批量更新报错问题

2019年07月22日  | 移动技术网IT编程  | 我要评论

下面给大家介绍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批量更新报错,希望对大家有所帮助

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网