mybatis oracle -批量插入,存在则更新
<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 -批量插入,存在则更新的更多相关文章
- mybatis+oracle 批量插入,若数据库中有则做更新操作
1.只批量插入: insert into WXPAY_ACCOUNT(id ,out_trade_no ,transaction_id)select SEQ_WXPAY_ACCOUNT.nextval ...
- mybatis Oracle 批量插入,批量更新
传入的参数只要是list类型的参数就行了..............1.批量插入<insert id="insertBatch" parameterType="ja ...
- MyBatis Oracle批量插入
1.oracle如何insert into 多个values https://www.cnblogs.com/mq0036/p/6370224.html?utm_source=itdadao& ...
- mybatis+oracle批量插入报不符合协议和sql未正确结束
在Java中循环save,需要加useGeneratedKeys="false",否则报错不符合协议 mybatis批量插入,也需要在insert里加入 useGeneratedK ...
- mybatis+Oracle 批量插入数据,有数据做更新操作
<!-- 批量添加 --> <insert id="batchAdd" parameterType="java.util.List"& ...
- mybatis foreach批量插入数据:Oracle与MySQL区别
mybatis foreach批量插入数据:Oracle与MySQL不同点: 主要不同点在于foreach标签内separator属性的设置问题: separator设置为","分 ...
- mybatis + mysql 批量插入、删除、更新
mybatis + mysql 批量插入.删除.更新 Student 表结构 批量插入 public int insertBatchStudent(List<Student> studen ...
- mybatis+mysql批量插入和批量更新、存在及更新
mybatis+mysql批量插入和批量更新 一.批量插入 批量插入数据使用的sql语句是: insert into table (字段一,字段二,字段三) values(xx,xx,xx),(oo, ...
- mysql基础---->mybatis的批量插入(一)
这里面记录一下使用mybatis处理mysql的批量插入的问题,测试有可能不准.只愿世间风景千般万般熙攘过后,字里行间,人我两忘,相对无言. mybatis的批量插入 我们的测试主体类是springb ...
随机推荐
- 关于javascript中defineProperty的学习
语法 Object.defineProperty(obj, prop, descriptor) 参数 obj 要在其上定义属性的对象. prop 要定义或修改的属性的名称. descriptor 将被 ...
- Log4j rootLogger配置
Log4j 根配置语法 log4j.rootLogger = [ level ] , appenderName, appenderName, … 指代 把指定级别的日志信息输出到指定的一个或者多个位置 ...
- 运行Maven工程中修改tomcat端口
Maven 运行:clean tomcat7:run 若需要修改端口,则用clean -Dmaven.tomcat.port=8082 tomcat7:run
- 从零开始编写操作系统——bochs
一.生成boot.bin boot sector代码: loop: jmp loop times -($-$$) db dw 0xaa55 重点就是最后的0xaa55 nasm boot.asm -f ...
- 前端 HTML 常用标签 head标签相关内容 link标签
link标签 引入CSS样式文件 href="./index.css" CSS文件的路径 <!-- 引入CSS样式文件 --> <link rel="s ...
- Sonatype Nexus Repository Manager修改密码不成功
nexus修改用户密码时出现Invalid authentication ticket 搜索一下,说会修改密码操作要在15秒内完成 ,于是快速操作,没想到真成功了
- 20171228 C#值类型和引用类型
public class RefPoint //定义的引用类型 { public int x; public RefPoint(int x) { this.x = x; } } public stru ...
- 终极大招——Scrapy框架
Scrapy框架 Scrapy 是一个开源和协作的框架,其最初是为了页面抓取 (更确切来说, 网络抓取 )所设计的,使用它可以以快速.简单.可扩展的方式从网站中提取所需的数据.但目前Scrapy的用途 ...
- adb移动端测试
1. Android介绍 Android 是google公司主导的一个开放的手机操作系统,不过目前已经超过了手机的局限,而定位于移动设备的操作系统. Android一词的本义指“机器人”,取名原因很简 ...
- SUDO安全委派和安全模块
sudo更换身份 su 切换身份 使用su 切换身份必须首先直到被切换成用户的密码 如: su root 就必须要知道root的密码 这种机制安全性不高,容易泄露管理员密码 1. sudo ...