当前位置: 首页 > 编程笔记 >

Mybatis批量更新报错问题

微生耘豪
2023-03-14
本文向大家介绍Mybatis批量更新报错问题,包括了Mybatis批量更新报错问题的使用技巧和注意事项,需要的朋友参考一下

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

以上所述是小编给大家介绍的详解Mybatis批量更新报错,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对小牛知识库网站的支持!

 类似资料:
  • 我最近开始学习使用myBatis。我现在面临这样一个场景,我需要通过WebService不断获取一个新的对象列表,然后对于这个列表,我需要通过myBatis将每个对象插入/更新到oracle DB表中。 棘手的是,我不能每次都简单地进行批量插入,因为有些对象可能已经存在于数据库中,对于这些记录,我需要更新它们的字段,而不是新的插入。 我目前的解决方案可能非常愚蠢,使用Java,从webservic

  • 我用myBatis。Single record语句工作正常,但当我尝试使用foreach执行记录列表的更新时,出现了一个关于映射的错误,这有点奇怪,因为它对Single record工作正常。 下面是我得到的错误: 原因:org。阿帕奇。伊巴蒂斯。类型TypeException:无法为映射设置参数:ParameterMapping{property=''frch\u item_0.fieldOne

  • 问题内容: 我最近开始学习使用myBatis。现在面对这样的情况,我需要通过WebService不断获取新的对象列表,然后对于该列表,我需要通过以下方式将每个对象插入/更新到oracle DB表中: myBatis。 棘手的部分是,我不能每次都简单地进行批量插入,因为某些对象可能已经存在于数据库中,对于这些记录,我需要更新它们的字段而不是新插入。 我当前的解决方案可能非常愚蠢,使用Java,从We

  • 请让我知道,如何使用带注释的映射器在mybatis中执行批插入/更新。

  • 我试图使用google sheet API for iOS进行批量更新,但在“数据[0]处收到一个无效值错误。值[0]'(type.googleapis.com/google.protobuf.ListValue), 这是我的密码 我的请求参数是 错误是 “数据[0]处的值无效。值[1]'(type.googleapis.com/google.protobuf.ListValue),“客户名称”在

  • 一、简介 方便用户在设置URL规则时更新url,无需手动去更新各页面URL。只需选择就能批量更新URL即可。 二、功能演示 1.批量更新URL 1、仅当内容页URL规则发上变化时,请批量更新,地址未改变时,不需要更新 。 2、规则设置:设置 > 相关设置 > 管理栏目 > 添加或修改栏目 选择需要更新的模型和栏目,输入每轮更新的信息数目提交则完成批量更新URL操作。如下图所示: