mybatis使用foreach批次插入,解决sequence只查询一次的问题
oracle的批量插入方式是:
insert into db(id, zgbh, shbzh) select '1', '2', '3' from dual union all select '2', '3', '4' from dual union all select '3', '4', '5' from dual union all select '4', '5', '6' from dual union all select '5', '6', '7' from dual
成功代码如下:
<insert id="batchInsert" parameterType="java.util.List"> INSERT INTO T_SYS_RESOURCE (RES_ID,RES_CODE,RES_NAME,REMARK,RES_TYPE_ID,INIT_FLAG) SELECT SEQ_SYS_RESOURCE.NEXTVAL,A.RES_CODE,A.RES_NAME,A.REMARK,A.RES_TYPE_ID,A.INIT_FLAG FROM( <foreach collection="list" item="item" index="index" separator="UNION ALL" > SELECT #{item.resCode} RES_CODE,#{item.resName} RES_NAME,#{item.remark} REMARK, #{item.resType.resTypeId} RES_TYPE_ID,#{item.initFlag} INIT_FLAG FROM DUAL </foreach> ) A </insert>
foreach拼出来的数据作为一张表A,然后从表A中查询数据,再接上从sequence中读取的值作为id。这样sequence的值就会多次读取,id就会不一样。
相关推荐
oracle 批量插入数据存储过程。亲测好用。支持 plsql ,toad,等数据库分析软件。主要包括变量的定义,循环及游标的使用等, 亲测好用
oracle 批量插入存储过程,性能非常高!
oracle批量生成数据脚本,oracle批量生成数据脚本,oracle批量生成数据脚本,oracle批量生成数据脚本。
考虑到当Excel数据量较大时,循环Insert语句效率太低,故采用批量插入的方法。在插入操作运行时,会造成系统短暂的“卡死”现象。为了让用户知道插入的状态,需要制作一个进度条来显示插入的进度。 批量插入 项目中...
可实现批量插入记录,免去一条条复制语句之苦.
数据库做数据库开发或管理的人经常要创建大量的测试数据,动不动就需要上万条,如果一条一条的录入,那会浪费大量的时间,本文介绍了Oracle中如何通过一条 SQL快速生成大量的测试数据的方法。 产生测试数据的SQL如下...
Java实现使用Mybatis将数据批量插入到Oracle数据库,并且可以使用Oracle序列来生成主键
利用.net 语言编程实现对Oracle数据的批量的导入功能
在oracle数据据库中批量插入数据的java方法
可以参看博客:http://blog.csdn.net/fengshuiyue/article/details/38988725
oracle、sqlserver数据库批量删建索引,方便好用,提高数据库查询效率,提升系统运行效率,特别是数据量比较大的情况下
mysql 数据库已存储过程插入一千万条测试数据!利用项目即将上限需要,可以完全系统的测试项目性能!里面又完整的文档和各项说明:打开文档就可以实际操作。
本文给大家带来三种oracle批量插入数据的方法,每种方法都是通过实例代码给大家介绍的非常详细,需要的朋友参考下吧
主要介绍了Oracle中多表关联批量插入,批量更新与批量删除操作,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
介绍了oracle数据库中批量插入技术!
C#批量插入,更新ORACLE 保存100万条数据大概3-5秒 保存或者更新100万条数据大概20秒 DataTable保存100万条数据大概1-2分钟 可能因环境原因时间有差异,不过可以看出性能还是很大提升的
关于ORACLE批量提交数据的SQL脚本,可以根据实际情况改变!
今天小编就为大家分享一篇关于ibatis结合oracle批量插入三种方法的测评,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
oracle ODP.NET 批量插入或更新