<insert id="batchUpdatePBWUserInfo" parameterType="java.util.List">
MERGE INTO S_PBW_USER t
USING (
<foreach collection="list" item="item" index="index" separator="union" >
SELECT
#{item.userId,jdbcType=VARCHAR} USERID,
#{item.userName,jdbcType=VARCHAR} USERNAME,
#{item.userType,jdbcType=VARCHAR} USERTYPE,
#{item.mobile,jdbcType=VARCHAR} MOBILE,
#{item.code,jdbcType=VARCHAR} USECODE,
#{item.companyName,jdbcType=VARCHAR} COMPANYNAME,
SYSDATE CREATE_TIME
FROM DUAL
</foreach>) t1
ON (t.USER_ID = t1.USERID )
WHEN MATCHED THEN
UPDATE SET t.update_time = t1.CREATE_TIME
WHEN NOT MATCHED THEN
INSERT(ID, USER_ID, USER_NAME, MOBILE, CODE, COMPAY_NAME, DEL_FLAG,CREATE_TIME)
VALUES (t1.USERID, t1.USERID, t1.USERNAME, t1.MOBILE, t1.USECODE, t1.COMPANYNAME, 0,t1.CREATE_TIME)
</insert> 总则:使用merge,存在就更新,不存在就插入
其中,需要注意:1.其中list中放的是个实体对象 list = new ArrayList<PBWUserInfo>();
        2.一次最好不要插入太多(本人是每次200,休眠一秒,因为是在循环里面异步处理的),否则会出现一些其他的错误。用代码控制一次插入的条数

mybatis oracle -批量插入,存在则更新的更多相关文章

  1. mybatis+oracle 批量插入,若数据库中有则做更新操作

    1.只批量插入: insert into WXPAY_ACCOUNT(id ,out_trade_no ,transaction_id)select SEQ_WXPAY_ACCOUNT.nextval ...

  2. mybatis Oracle 批量插入,批量更新

    传入的参数只要是list类型的参数就行了..............1.批量插入<insert id="insertBatch" parameterType="ja ...

  3. MyBatis Oracle批量插入

    1.oracle如何insert into 多个values https://www.cnblogs.com/mq0036/p/6370224.html?utm_source=itdadao& ...

  4. mybatis+oracle批量插入报不符合协议和sql未正确结束

    在Java中循环save,需要加useGeneratedKeys="false",否则报错不符合协议 mybatis批量插入,也需要在insert里加入 useGeneratedK ...

  5. mybatis+Oracle 批量插入数据,有数据做更新操作

    <!-- 批量添加 -->     <insert id="batchAdd" parameterType="java.util.List"& ...

  6. mybatis foreach批量插入数据:Oracle与MySQL区别

    mybatis foreach批量插入数据:Oracle与MySQL不同点: 主要不同点在于foreach标签内separator属性的设置问题: separator设置为","分 ...

  7. mybatis + mysql 批量插入、删除、更新

    mybatis + mysql 批量插入.删除.更新 Student 表结构 批量插入 public int insertBatchStudent(List<Student> studen ...

  8. mybatis+mysql批量插入和批量更新、存在及更新

    mybatis+mysql批量插入和批量更新 一.批量插入 批量插入数据使用的sql语句是: insert into table (字段一,字段二,字段三) values(xx,xx,xx),(oo, ...

  9. mysql基础---->mybatis的批量插入(一)

    这里面记录一下使用mybatis处理mysql的批量插入的问题,测试有可能不准.只愿世间风景千般万般熙攘过后,字里行间,人我两忘,相对无言. mybatis的批量插入 我们的测试主体类是springb ...

随机推荐

  1. 关于javascript中defineProperty的学习

    语法 Object.defineProperty(obj, prop, descriptor) 参数 obj 要在其上定义属性的对象. prop 要定义或修改的属性的名称. descriptor 将被 ...

  2. Log4j rootLogger配置

    Log4j 根配置语法 log4j.rootLogger = [ level ] , appenderName, appenderName, … 指代 把指定级别的日志信息输出到指定的一个或者多个位置 ...

  3. 运行Maven工程中修改tomcat端口

    Maven 运行:clean tomcat7:run 若需要修改端口,则用clean -Dmaven.tomcat.port=8082 tomcat7:run

  4. 从零开始编写操作系统——bochs

    一.生成boot.bin boot sector代码: loop: jmp loop times -($-$$) db dw 0xaa55 重点就是最后的0xaa55 nasm boot.asm -f ...

  5. 前端 HTML 常用标签 head标签相关内容 link标签

    link标签 引入CSS样式文件 href="./index.css" CSS文件的路径 <!-- 引入CSS样式文件 --> <link rel="s ...

  6. Sonatype Nexus Repository Manager修改密码不成功

    nexus修改用户密码时出现Invalid authentication ticket 搜索一下,说会修改密码操作要在15秒内完成 ,于是快速操作,没想到真成功了

  7. 20171228 C#值类型和引用类型

    public class RefPoint //定义的引用类型 { public int x; public RefPoint(int x) { this.x = x; } } public stru ...

  8. 终极大招——Scrapy框架

    Scrapy框架 Scrapy 是一个开源和协作的框架,其最初是为了页面抓取 (更确切来说, 网络抓取 )所设计的,使用它可以以快速.简单.可扩展的方式从网站中提取所需的数据.但目前Scrapy的用途 ...

  9. adb移动端测试

    1. Android介绍 Android 是google公司主导的一个开放的手机操作系统,不过目前已经超过了手机的局限,而定位于移动设备的操作系统. Android一词的本义指“机器人”,取名原因很简 ...

  10. SUDO安全委派和安全模块

    sudo更换身份 su  切换身份   使用su 切换身份必须首先直到被切换成用户的密码   如: su root  就必须要知道root的密码 这种机制安全性不高,容易泄露管理员密码 1. sudo ...