欢迎来到代码驿站!

JAVA代码

当前位置:首页 > 软件编程 > JAVA代码

Mybatis批量更新报错问题

时间:2021-08-20 10:03:44|栏目:JAVA代码|点击:

下面给大家介绍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&amp;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两种)

上一篇:Spring创建IOC容器的方式解析

栏    目:JAVA代码

下一篇:如何用Java模拟XN*2图灵机

本文标题:Mybatis批量更新报错问题

本文地址:http://www.codeinn.net/misctech/168293.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有