Mybatis在oracle批量更新

最近公司业务中为了提高效率要做mybatis批量更新,但是到了oracle数据库中做了好几次都没成功,后来发现mybatis最后少了个分号,可能是Mybatis内部做了异常try  catche  处理,导致控制台没有报错信息。在此仅做小记。

Mapper文件中的方法定义如下:

public int updateCreditStatuslist(List<UserCreditStatus> list);

Mapper.xml文件的实现如下:(creditStatus是对象内部的成员,id是对象内部的一个对象)

<update id="updateCreditStatuslist" parameterType="java.util.List">

<foreach collection="list" item="item" index="index" separator=";">
  update XB_CREDIT_STATUS_P
  set
  CREDIT_STATUS=#{item.creditStatus}, CREDIT_TIME=#{item.creditTime}

  where subsid=#{item.id.subsId} and OPERATIONID=#{item.id.operationId}
  and
  SUB_OPERATIONID=#{item.id.subOperation}
</foreach>
  ;  <!--注意红色的分号,不加就不会批量更新,并且不会报错。。。。-->

</update>

时间: 2024-08-04 10:28:43

Mybatis在oracle批量更新的相关文章

Oracle 批量更新表字段

Oracle 批量更新表字段 CreateTime--2018年2月27日16:02:24 Author:Marydon (一) 将数字替换成汉字 第一步,去重查询 使用distinct关键字先对该字段值进行去重查询,看共有几种情况 --查询指定区间内表停诊字段的值 SELECT DISTINCT T.CLOSE_TZ FROM CONSULT_SCHEDULE T WHERE T.SCHEDULE_DATE BETWEEN TO_DATE('2018-01-01', 'yyyy-MM-dd')

mybatis支持oracle批量插入

问题:mysql使用mybatis批量插入时,通过foreach标签,将每条记录按照逗号","连接即可. 但是,oracle不支持. oracle支持如下写法: <insert id="insertStudents"> INSERT INTO Student ( id, name, age, sex ) <foreach collection="stuList" item="item" index="

mybatis使用oracle批量插入

mysql的批量大家应该都知道,oracle和mysql还是有些不同的,如下: <insert id="inserts" parameterType="com.qianxingniwo.model.DlyOnlinePayOrder" useGeneratedKeys="false" > insert into YYSC_PLAT.DLY_ONLINE_PAY_ORDER (ORDER_ID, TRANSACTION_ID, ORDE

【Oracle批量更新】根据一个大表批量更新另一大表的方法比较

[问题]现在有两个千万级别的结构相同数据不同数据表T_SMS_PHONENO(目的表),T_SMS_PHONENO2(源表),根据源表数据更新目的表的数据. [分析]根据经验,更新方法一般有以下几种: 1.直接update. update T_SMS_PHONENO T Set    T.NAME=(select NAME from T_SMS_PHONENO2 where PHONENO=T.PHONENO) 2.采用分条更新.根据记录ID逐条更新. open cur is select ph

SpringBoot+Mybatis+Druid批量更新 multi-statement not allow异常

本文链接:https://blog.csdn.net/weixin_43947588/article/details/90109325 注:该文是本博主记录学习之用,没有太多详细的讲解,敬请谅解! 在日常的开发过程中难免会有批量操作的功能,Mybatis集成Druid批量更新时经常会出现Error updating database. Cause: java.sql.SQLException: sql injection violation, multi-statement not allow

mybatis-oracle(ssi2)批量更新

student类 package com.test.hou.po; public class Student { private int sid; private String sname; private int sage; public int getSid() { return sid; } public void setSid(int sid) { this.sid = sid; } public String getSname() { return sname; } public vo

170829、mybatis使用oracle和mybatis中批量更新

1.数据库连接必须配置:&allowMultiQueries=true(切记一定要加上这个属性,否则会有问题,切记!切记!切记!) 我的配置如下:jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true 2.批量修改并加判断条件(修改字段可选) <!-- 批量更新 --> <update id="updateMatchs&

mybatis批量更新

mybatis批量更新 以前做的东西,怕忘了随手做一个记录 首先在配置数据库连接字符串后面加上 &allowMultiQueries=true 我的完整的是这样的 jdbc:mysql://192.168.1.200:3306/huasheng?characterEncoding=utf-8&allowMultiQueries=true Controller层把一个JSON字符串转换成list集合 @RequestMapping(value = "/update") p

mybatis oracle批量插入

<insert id="insertbatchinfotoemploees" parameterType="java.util.List"> insert into INFOTOEMPLOEE select INFO_EMPLOEES.NEXTVAL,A.* from( <!--INFO_EMPLOEES为自增序列--> <foreach collection="list" item="item"