<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. django2.0内置分页

    #导入分页器from django.core.paginator import Paginator 1视图逻辑 #读取数据库 res = Product.objects.all() #建立分页器对象 ...

  2. Qt获取QObject对应的类名并把它转为真实类型(使用obj->metaObject()->className() )

    QObject是有窗口类的父类,比如QWidget,QLabel,QPushButton等都直接或间接继承自QObject类.如果把某个窗口中的所有控件都装到一个QList<QObject*&g ...

  3. 集齐所有机制的按键控制LED驱动

    内核版本:linux2.6.22.6 硬件平台:JZ2440 驱动源码 final_key.c : #include <linux/module.h> #include <linux ...

  4. CUDNN安装

    在英伟达官网下载后解压,然后: cd cuda sudo cp lib64/* /usr/local/cuda/lib64/ sudo cp include/* /usr/local/cuda/inc ...

  5. Hibernate的一个小应用

    hibernate 第一步,导入hiberante需要用到的jar包,因为使用hibernate时候,有日志信息输出,hibernate本身没有日志输出的jar包,导入其他日志的jar包 不要忘记还有 ...

  6. zedboard上首个驱动实践——Led

    // led驱动 *myled.c*//头文件 #include<linux/module.h> //最基本的文件,支持动态添加和卸载模块 #include<linux/kernel ...

  7. centos安装Django之三:安装python

    这是centos安装Django系列第三篇,安装python.centos系统已经自带了python2.6,但是它被系统很多程序所依赖,不建议删除.我们可以使用以下命令来查看我们使用的Python版本 ...

  8. iOS开发swift语法0基础篇—————(swift技术交流群:361513739)

    iOS开发之swift语法0基础篇:点击打开链接  swift技术交流QQ群361513739

  9. RN picker使用

    这里是只有苹果的,如果想适配andorid,可以在showPickerFun方法里面使用platefrom判断 代码: import React, {Component} from 'react'; ...

  10. SQL SERVER 2016研究二

    2.动态数据屏蔽 创建数据表: 创建账号并授予获取屏蔽后数据的权限 此函数:partial(0,"XXX-XXXX-",4) 表示从左边0位开始依次替换到倒数4位. 注意:屏蔽只作 ...