Mybatis+Oracle --批量插入

Oracle自增长ID:

参考博客:Oracle数据库创建表ID字段的自动递增

mybatis语句

参考博客:点评 ibatis+oracle 批量插入的三种方法. 参考第三种

参考博客:mybatis中批量插入的两种方式(高效插入)

Oracle自增长ID,如下:

序列:

   CREATE SEQUENCE  "ENERGY"."ROLE_OBJECT_SEQ"  MINVALUE 1 MAXVALUE 9999999999999999999999999999 INCREMENT BY 1 START WITH 150 NOCACHE  NOORDER  NOCYCLE ;
 

触发器:

CREATE OR REPLACE TRIGGER TRIGGER_ROLE_OBJECT
BEFORE INSERT ON SYS_RIGHT_ROLE_OBJECT FOR EACH ROW
BEGIN
  SELECT ROLE_OBJECT_SEQ.nextval into :new.ROLE_OBJECT_ID from dual;
END;

Mybatis :

    <insert id="insertSelectiveByList" parameterType="java.util.List">
        insert into
        SYS_RIGHT_ROLE_OBJECT (ROLE_CODE,
        OBJECT_CODE,
        POLICY_ID, PERMISSION)
        <foreach collection="list" item="item" index="index"  open="(" close=")" separator="UNION ALL">
            SELECT #{item.roleCode} AS ROLE_CODE,
            #{item.objectCode} AS OBJECT_CODE,
            #{item.policyId} AS POLICY_ID, #{item.permission} AS PERMISSION  FROM dual
        </foreach>
    </insert>
时间: 2024-11-05 02:32:44

Mybatis+Oracle --批量插入的相关文章

mybatis oracle批量插入

<insert id="insertbatchinfotoemploees" parameterType="java.util.List"> insert into INFOTOEMPLOEE select INFO_EMPLOEES.NEXTVAL,A.* from( <!--INFO_EMPLOEES为自增序列--> <foreach collection="list" item="item"

mybatis Oracle 批量插入,批量更新

传入的参数只要是list类型的参数就行了..............1.批量插入 <insert id="insertBatch" parameterType="java.util.List"> INSERT INTO T_CITY_INDEX( id,city_code ) select SEQ_CITY_INDEX.NEXTVAL,cd.* from( <foreach collection="list" item=&quo

mybatis foreach批量插入数据:Oracle与MySQL区别

mybatis foreach批量插入数据:Oracle与MySQL不同点: 主要不同点在于foreach标签内separator属性的设置问题: separator设置为","分割时,最终拼接的代码形式为:insert into table_name (a,b,c) values (v1,v2,v3) ,(v4,v5,v6) ,... separator设置为"union all"分割时,最终拼接的代码形式为:insert into table_name (a,b

Mybatis+mysql批量插入性能分析测试

前言 今天在网上看到一篇文章(后文中的文章指的就是它) https://www.jianshu.com/p/cce617be9f9e 发现了一种有关于mybatis批量插入的新方法,而且看了文章发现我原来的方法好像有点问题,但是由于文章中使用的环境是sqlserver而我经常使用的是mysql所以还是需要亲自来试试. 环境说明 项目使用springboot mybatis 数据库mysql5.7 使用本地mysql所以网络可以忽略不计 插入对象完全相同,只有id自增 表结构如下: CREATE

mybatis+oracle 完成插入数据库,并将主键返回的注意事项

mybatis+oracle 完成插入数据库,并将主键返回的注意事项一条插入语句就踩了不少的坑,首先我的建表语句是: create table t_openapi_batch_info( BATCH_NO VARCHAR2(200), UM_CODE VARCHAR2(50), BATCH_STATUS CHAR(1) DEFAULT '0', BATCH_TYPE CHAR(1), CREATED_DATE DATE, CREATED_BY VARCHAR(100), UPDATED_DATE

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

springmvc+mybatis+ajax 批量插入数据

批量插入.AJAX发起请求,核心代码如下: var mids = new Array(); for (var i=0; i< rows.length; i++) {     mids.push(rows[i].id); } $.ajax({     type: 'POST',     dataType: "json",     async: false,     traditional:true, //这一行很重要     url: parent.getBasePath()+&q

Oracle批量插入数据SQL语句太长出错:无效的主机/绑定变量名

Oracle数据库,用mybatic批量插入数据: <insert id="saveBatch" parameterType="io.renren.entity.NodeDataEntity" databaseId="oracle"> insert into "NODE_DATA" ( "NODE_ID", "DATA_TIME", "DATA_VALUE"

MyBatis动态批量插入、更新Mysql数据库的通用实现方案

一.业务背景 由于需要从A数据库提取大量数据同步到B系统,采用了tomikos+jta进行分布式事务管理,先将系统数据源切换到数据提供方,将需要同步的数据查询出来,然后再将系统数据源切换到数据接收方,进行批量的插入和更新操作, 关于数据源的切换可以参考之前的文章<spring+springMVC+Mybatis架构下采用AbstractRoutingDataSource.atomikos.JTA实现多数据源灵活切换以及分布式事务管理> 二.批量插入的具体实现 1.查询需要同步的数据: @Aut