1. // 批量插入,手动控制事务
  2. SqlSession batchSqlSession = null;
  3. try {
  4. batchSqlSession = sqlSessionTemplate.getSqlSessionFactory()
  5. .openSession(ExecutorType.BATCH, false);// 获取批量方式的sqlsession
  6. int batchCount = 1000;// 每批commit的个数
  7. int batchLastIndex = batchCount - 1;// 每批最后一个的下标
  8. for (int index = 0; index < saveList.size();) {
  9. if (batchLastIndex > saveList.size()) {
  10. batchLastIndex = saveList.size();
  11. batchSqlSession.insert(
  12. "com.jomoo.oms.baseData.mapper.CapaCityMapper.create2",
  13. saveList.subList(index, batchLastIndex));
  14. batchSqlSession.commit();
  15. break;// 数据插入完毕,退出循环
  16. } else {
  17. batchSqlSession.insert(
  18. "com.jomoo.oms.baseData.mapper.CapaCityMapper.create2",
  19. saveList.subList(index, batchLastIndex));
  20. batchSqlSession.commit();
  21. index = batchLastIndex;// 设置下一批下标
  22. batchLastIndex = index + (batchCount - 1);
  23. }
  24. }
  25. } catch (Exception e) {
  26. throw new OptException(e.getMessage());
  27. } finally {
  28. batchSqlSession.close();
  29. }
  1. <insert id="create2" parameterType="com.jomoo.oms.baseData.model.CapaCityModel">
  2. <selectKey keyProperty="id" order="BEFORE" resultType="Long">
  3. select JOMOO_OMS.OMS_CAPACITY_S.NEXTVAL as id from dual
  4. </selectKey>
  5. insert into JOMOO_OMS.OMS_CAPACITY(<include refid="Base_Column_List"></include>) select JOMOO_OMS.OMS_CAPACITY_S.NEXTVAL, A.*
  6. from (
  7. <foreach collection="list" item="capacity" index="index" open="" close="" separator="union all">
  8. select
  9. #{capacity.factoryCode},
  10. #{capacity.factoryName},
  11. #{capacity.productSeriesCode},
  12. #{capacity.productSeries},
  13. #{capacity.materialCode},
  14. #{capacity.materialName},
  15. #{capacity.dateNumber},
  16. #{capacity.totalCapacity},
  17. #{capacity.leftCapacity},
  18. #{capacity.remark},
  19. #{capacity.registerId},
  20. #{capacity.createdByEmployee},
  21. #{capacity.createdByDept},
  22. #{capacity.enableFlag},
  23. sysdate
  24. from dual
  25. </foreach>
  26. ) A
  27. </insert>

mybatis+oracle的批量插入的更多相关文章

  1. mybatis oracle mysql 批量插入时的坑爹问题--需谨记

    mybatis oracle mysql 批量插入一.oracle的批量插入方式insert into db(id, zgbh, shbzh) select '1', '2', '3' from du ...

  2. Oracle 存储过程批量插入数据

    oracle 存储过程批量插入大量数据 declare numCount number; userName varchar2(512); email varchar2(512); markCommen ...

  3. MyBatis 使用 foreach 批量插入

    MyBatis 使用 foreach 批量插入 参考博文 老司机学习MyBatis之动态SQL使用foreach在MySQL中批量插入 使用MyBatis一次性插入多条数据时候可以使用 <for ...

  4. Mybatis中实现oracle的批量插入、更新

    oracle 实现在Mybatis中批量插入,下面测试可以使用,在批量插入中不能使用insert 标签,只能使用select标签进行批量插入,否则会提示错误 ### Cause: java.sql.S ...

  5. mybatis使用序列批量插入数据

    mybatis只提供了单条数据的插入,要批量插入数据我们可以使用循环一条条的插入,但是这样做的效率太低下,每插入一条数据就需要提交一次,如果数据量几百上千甚至更多,插入性能往往不是我们能接受的,如下例 ...

  6. oracle+ibatis 批量插入-支持序列自增

    首先请先看我前面一篇帖子了解oracle批量插入的sql:[oracle 批量插入-支持序列自增] 我用的ibatis2.0,sqlMap文件引入的标签如下: <!DOCTYPE sqlMap ...

  7. Oracle中批量插入

    为了防止OracleConnection的重复打开和关闭,使用begin end:将sql语句包在里面,然后一次性执行提高插入的效率. 下面代码中要插入的数据在list集合中,如果list集合的cou ...

  8. Oracle/Mysql批量插入的sql,效率比较高

    1.oracle 批量插入: insert into tableName(col1,col2,col3...)    select 1,'第一行第一列值','第二列值' from dual union ...

  9. Mybatis与JDBC批量插入MySQL数据库性能测试及解决方案

    转自http://www.cnblogs.com/fnz0/p/5713102.html 不知道自己什么时候才有这种钻研精神- -. 1      背景 系统中需要批量生成单据数据到数据库表,所以采用 ...

随机推荐

  1. HDU 2504 又见GCD(数论,最大公约数)

    又见GCD Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submi ...

  2. Codeforces Beta Round 84 (Div. 2 Only)

    layout: post title: Codeforces Beta Round 84 (Div. 2 Only) author: "luowentaoaa" catalog: ...

  3. HTTP状态代码集

    所有 HTTP 状态代码及其定义.   代码  指示     2xx  成功     200  正常:请求已完成.     201  正常:紧接 POST 命令.     202  正常:已接受用于处 ...

  4. 解决intellij idea中使用live edit插件不能在chrome即时显示css变化的方法(html可以)

    问题源于一次chrome内核的更新 详细请看 http://src.chromium.org/viewvc/blink/trunk/Source/devtools/protocol.json?revi ...

  5. POJ 3260 The Fewest Coins(背包问题)

    [题目链接] http://poj.org/problem?id=3260 [题目大意] 给出你拥有的货币种类和每种的数量,商店拥有的货币数量是无限的, 问你买一个价值为m的物品,最少的货币流通数量为 ...

  6. 【DFS】URAL - 2104 - Game with a Strip

    大概就是dfs?当前区间(l,r)的答案可以由(l,m)和(m+1,r)区间推出,如果某个区间已经完全被某种颜色覆盖,那么就返回该颜色.否则按照递归层数判定,奇数层Alice占优势,只需左右区间中一者 ...

  7. 【转载】【bitset】C++ STL bitset 使用总结

    C++ bitset类的使用与简介 有些程序要处理二进制位的有序集,每个位可能包含的是0(关)或1(开)的值.位是用来保存一组项或条件的yes/no信息(有时也称标志)的简洁方法.标准库提供了bits ...

  8. Scala实战高手****第17课:Scala并发编程实战及Spark源码阅读

    package com.wanji.scala.test import javax.swing.text.AbstractDocument.Content import scala.actors.Ac ...

  9. Orcale自增/Hibernate 配置

    -- 自增  create sequence SEQ_T_APP_USER start with 1 increment by 1; -- 触发器 create trigger DECTUSER_T_ ...

  10. JNI之数据类型

    1. JNIEnv 作用 JNIEnv 概念 : 是一个线程相关的结构体, 该结构体代表了 Java 在本线程的运行环境 ; JNIEnv 与 JavaVM : 注意区分这两个概念; -- JavaV ...