oracle+mybatis批量插入数据
1.Oracle批量操作
我的表结构是
1.1批量插入
1.1.1主键不使用序列
insert into students(sid,sname,ssal,ssex)
select 9,'张三',3000,'男' from dual
union all select 10,'李四',4000,'男' from dual
union all select 11,'小红',5000,'女' from dual
主键直接通过具体值进行指定,如上面的9、10、11。适用于主键id为随机数之类的。在项目中我们有时也会让主键id自增长,这个时候就需要使用到序列了。
1.1.2主键使用序列自增长
我的序列名称:seq_stu
insert into students(sid,sname,ssal,ssex)
select seq_stu.nextval,s.* from
(
select '张三2',4000,'女' from dual
union all select '李四2',5000,'女' from dual
) s
这种方式和上面不使用序列的方式其实类似,先在子查询里面不指定主键那一列,查出来有几条数据(待插入数据),然后将主键和那几条数据组合在一起,相当于select seq_stu.nextval, s.* from s
由于s有两条数据,因此序列也会产生两个值。
2.mybatis对Oracle进行批量操作
mybatis对Oracle进行批量操作,其实也就是使用mybatis的动态sql 功能进行拼接。
这里我使用的表是Oracle自带的scott数据库下的emp表的备份,copy_emp表。
2.1批量插入
2.1.1主键不使用序列
<!--批量插入--><insert id="insertBatch" parameterType="com.caihao.oracledemo1.entity.CopyEmp">INSERT INTO copy_emp(empno,ename,job,mgr,hiredate,sal,comm,deptno)<foreach collection="copyEmpList" item="copyEmp" separator="UNION ALL">SELECT #{copyEmp.empno},#{copyEmp.ename},#{copyEmp.job},#{copyEmp.mgr},#{copyEmp.hiredate},#{copyEmp.sal},#{copyEmp.comm},#{copyEmp.deptno}FROM dual</foreach></insert>
2.1.2主键使用序列
<!--批量插入,使用序列-->
<insert id="insertBatchWithSequence" parameterType="com.caihao.oracledemo1.entity.CopyEmp">INSERT INTO copy_emp(empno,ename,job,mgr,hiredate,sal,comm,deptno)SELECT seq_stu.nextval,s.* FROM(<foreach collection="copyEmpList" item="copyEmp" separator="UNION ALL">
SELECT #{copyEmp.ename},#{copyEmp.job},#{copyEmp.mgr},#{copyEmp.hiredate},#{copyEmp.sal},#{copyEmp.comm},#{copyEmp.deptno}FROM dual</foreach>) s
</insert>
至于更新、删除和查询与mysql差不多,因此没做记录。
oracle+mybatis批量插入数据相关推荐
- 批量插入数据库语句java_java相关:MyBatis批量插入数据到Oracle数据库中的两种方式(实例代码)...
java相关:MyBatis批量插入数据到Oracle数据库中的两种方式(实例代码) 发布于 2020-7-22| 复制链接 本文通过实例代码给大家分享了MyBatis批量插入数据到Oracle数据库 ...
- oracle批量插入报错,[数据库]Mybatis 批量插入数据 关于Oracle 批量插入报错:ORA
[数据库]Mybatis 批量插入数据 关于Oracle 批量插入报错:ORA 0 2020-08-19 08:00:06 Mybatis 批量插入数据 关于Oracle 批量插入报错:ORA-009 ...
- MyBatis 批量插入数据到Oracle
Oracle批量插入数据写法 INSERT INTO USER (ID, NAME) <foreach collection="list" item="item&q ...
- Mybatis 批量插入数据 关于Oracle 批量插入
问题:用mybaits 批量插入数据到Oracle 数据库的时候, 报错: ORA-00933: SQL 命令未正确结束 / ORA-00933: SQL command not properly e ...
- 解决Oracle+Mybatis批量插入报错:SQL 命令未正确结束
Mybatis批量插入需要foreach元素.foreach元素有以下主要属性: (1)item:集合中每一个元素进行迭代时的别名. (2)index:指定一个名字,用于表示在迭代过程中,每次迭代到的 ...
- Mybatis批量插入数据的两种方式
总体描述 软件开发过程中需要批量插入数据的场景有几种: 从离线文件(excel, csv等)导入大批量数据到系统. 从其它系统定时或者人工同步大批量数据到系统. 程序自身的某些算法执行时会生成大批量数 ...
- MyBatis 批量插入数据的 3 种方法
批量插入功能是我们日常工作中比较常见的业务功能之一,之前我也写过一篇关于<MyBatis Plus 批量数据插入功能,yyds!>的文章,但评论区的反馈不是很好,主要有两个问题:第一,对 ...
- c# oracle 事务批量插入数据,[小白求教]c# System.Data.OracleClient 怎么批量插入数据...
[小白求教]c# System.Data.OracleClient 如何批量插入数据 本帖最后由 qq_16664871 于 2014-10-29 17:00:37 编辑 如题,听说可以用SQL拼接语 ...
- 【Oracle】Mybatis 批量插入数据
目录 循环调用单次插入 方式一 begin end Mapper.xml sql 方式二 insert all into ... Mapper.xml sql 其他方式(未使用Mybatis验证) 循 ...
最新文章
- SpringCloudAlibaba:Nacos实现原理详解
- 2018 ACM-ICPC Asia Shenyang Regional Contest 题解(9 / 13)【每日亿题2021/2/24】
- 模糊集的例子(年轻 年老)
- unreal world 皮革_UnRealWorld 进阶游戏教程
- OpenGL基于PBR的irradiance辐照度的实例
- Flash务实主义(五)——AS3的垃圾回收(转)
- 轻松搭建基于 SpringBoot + Vue 的 Web 商城应用
- ECMAScript 6学习总结(2)——ECMAScript 6常用方法总结
- python_day9 异常处理
- “四大设计原则”在排版中的应用
- High-Sierra,MacOS10.13,增加IntelHD3000显存的方法
- 用PS快速制作水彩效果人物照片
- html页眉页脚独立,页眉页脚怎么单独设置
- python数据分析-concat合并表,报错InvalidIndexError: Reindexing only valid with uniquely valued Index objects
- 分布式存储系统Kudu(一)、核心原理
- 2021 Python入门资料汇总
- ACM解题的一些技巧和方法
- IT168 CIO频道11月28日至12月01日文章精选
- Python openjudge 练习025:正常血压
- 第三章数字逻辑电路基础