Mybatis 针对oracle的批量插入

xml文件参数对象:

1 public class Columns{
2     private String basedate_code;
3     private String tableName;
4     private String codeDescribeindex;
5     private String codeInfoindex;
6     private String codePymindex;
7     private List<Info> infos;

Dao层方法:

public void bulkInsert(Columns columns);

xml文件配置:

 1 <insert id="bulkInsert" parameterType="Columns">
 2         insert into manager_basedata_info (app_code,basedata_code,item_code,item_name,item_pym,updatetime)
 3         <foreach collection="infos" item="item"  index="index"  separator="UNION">
 4             select
 5               ‘pc‘,
 6                #{basedate_code,jdbcType=VARCHAR},
 7                #{item.item_code,jdbcType=VARCHAR},
 8                #{item.item_name,jdbcType=VARCHAR},
 9                #{item.item_pym,jdbcType=VARCHAR},
10                sysdate
11                from dual
12         </foreach>
13     </insert>

Mybatis 针对oracle的批量插入

时间: 2024-08-14 21:15:32

Mybatis 针对oracle的批量插入的相关文章

C++完成Oracle存储过程批量插入(一)

为了满足大数据量的批量插入这个需求,最近研究了一下Oracle数据库的批量插入这块儿,本篇先介绍一下这两天来所了解到的以及一次不成功的C++进行存储过程批量插入方案. 一.Oracle处理批量插入存储过程 1.Oracle处理批量插入涉及到的相关概念有:Type.bulk collect.Oracle数组等.现在对它们依次简单的介绍一下. 1)Type Type主要用于用户建立Oracle自定义类型. Type常用的自定义类型介绍: A.子类型 类似与全局定义的常量,只要改一处地方,与此常量相关

mybatis使用foreach进行批量插入和删除操作

一.批量插入 1.mapper层 int insertBatchRoleUser(@Param("lists") List<RoleUser> lists);//@Param中的参数必须和mapper.xml中foreach的collection对应,若果不写@Param注解并且只传入一个list作为参数,则collection默认填list 2.mapper.xml <insert id="insertBatchRoleUser"> INS

Mybatis 3+Mysql 实现批量插入

终于实现了ibatis的批量插入,此方法插入3000条数据,比单条插入可以节省一半的时间 XML代码: <insert id="insertBatch" parameterType="ArrayList"> insert intouser(id,account,password,active,status,name,gender,active_date,expiry_date,type,remark,group_id,disable,exam_numbe

C++完成Oracle存储过程批量插入(二)

上篇文章简单的介绍了一下oracle参数是Object类型的数据库存储过程,以及JAVA使用JDBC去调用该类的存储过程的方法.但是我需要的是C++下的方案,使用Poco库未发现任何可以调用该类型存储过程的方法,但是功能还是需要实现的,后来发现Oracle支持XML的解析,于是有了下面的方案,即存储过程的参数为CLOB类型,C++按照传入XML格式字符串的方式调用存储过程,在存储过程中解析xml后,将数据插入数据库中. (有了上述的方案后,我猜想JDBC的处理方式可能也是往Oracle数据库中传

Mybatis在oracle数据库中插入数据后返回自增值ID

1.将id设置成自增序列 CREATE OR REPLACE TRIGGER "DATALIB"."TRIG_USER_ADD" BEFORE INSERT ON "sys_user" for each row begin select SEQ_USER.nextval into :new."user_id" from dual; end;ALTER TRIGGER "DATALIB"."TRIG

C++完毕Oracle存储过程批量插入(二)

上篇文章简单的介绍了一下oracle參数是Object类型的数据库存储过程,以及JAVA使用JDBC去调用该类的存储过程的方法. 可是我须要的是C++下的方案.使用Poco库未发现不论什么能够调用该类型存储过程的方法,可是功能还是须要实现的,后来发现Oracle支持XML的解析,于是有了以下的方案.即存储过程的參数为CLOB类型,C++依照传入XML格式字符串的方式调用存储过程,在存储过程中解析xml后.将数据插入数据库中. (有了上述的方案后,我猜想JDBC的处理方式可能也是往Oracle数据

Oracle 存储过程 批量插入测试数据

有时候需要做DB的效率测试时,需要模拟大量数据.可以根据一条原始数据,通过执行存储过程拷贝出大量数据: CREATE OR REPLACE PROCEDURE proc_msw_strsql IS i INT; BEGIN i :=1; WHILE i<=100000 LOOP INSERT INTO REP_DATAF_07_0 (SELECT REP_DATAF_07_ITEMID_SEQ.nextval AS PKID, ORGAN_ID, REPORT_ID, ITEM_ID, REPO

批量插入数据(基于Mybatis的实现-Oracle)

前言:做一个数据同步项目,要求:同步数据不丢失的情况下,提高插入性能. 项目DB框架:Mybatis.DataBase:Oracle. ---------------------------------------------------------------------------- 批量插入数据方式: 一.Mybatis 全局设置批处理: 二.Mybatis 局部设置批处理: 三.Mybatis foreach批量插入: ①SELECT UNION ALL: ②BEGIN INSERT I

Java通过Mybatis实现批量插入数据到Oracle中

最近项目中遇到一个问题:导入数据到后台并将数据插入到数据库中,导入的数据量有上万条数据,考虑采用批量插入数据的方式: 结合网上资料,写了个小demo,文章末尾附上demo下载地址 1.新建项目:项目目录结构如下图所示,添加相应的jar包 2.新建数据库表:ACCOUNT_INFO 1 CREATE TABLE ACCOUNT_INFO ( 2 "ID" NUMBER(12) NOT NULL , 3 "USERNAME" VARCHAR2(64 BYTE) NULL