// 批量插入,手动控制事务
SqlSession batchSqlSession = null;
try {
    batchSqlSession = sqlSessionTemplate.getSqlSessionFactory()
        .openSession(ExecutorType.BATCH, false);// 获取批量方式的sqlsession
    int batchCount = 1000;// 每批commit的个数
    int batchLastIndex = batchCount - 1;// 每批最后一个的下标
    for (int index = 0; index < saveList.size();) {
        if (batchLastIndex > saveList.size()) {
            batchLastIndex = saveList.size();
            batchSqlSession.insert(
                "com.jomoo.oms.baseData.mapper.CapaCityMapper.create2",
                saveList.subList(index, batchLastIndex));
            batchSqlSession.commit();
            break;// 数据插入完毕,退出循环
        } else {
            batchSqlSession.insert(
                "com.jomoo.oms.baseData.mapper.CapaCityMapper.create2",
                saveList.subList(index, batchLastIndex));
            batchSqlSession.commit();
            index = batchLastIndex;// 设置下一批下标
            batchLastIndex = index + (batchCount - 1);
        }
    }
} catch (Exception e) {
    throw new OptException(e.getMessage());
} finally {
    batchSqlSession.close();
}
<insert id="create2"  parameterType="com.jomoo.oms.baseData.model.CapaCityModel">
    <selectKey keyProperty="id" order="BEFORE" resultType="Long">
        select JOMOO_OMS.OMS_CAPACITY_S.NEXTVAL as id from dual
    </selectKey>

    insert into JOMOO_OMS.OMS_CAPACITY(<include refid="Base_Column_List"></include>) select JOMOO_OMS.OMS_CAPACITY_S.NEXTVAL, A.*
    from (
    <foreach collection="list" item="capacity" index="index" open="" close="" separator="union all">
        select
        #{capacity.factoryCode},
        #{capacity.factoryName},
        #{capacity.productSeriesCode},
        #{capacity.productSeries},
        #{capacity.materialCode},
        #{capacity.materialName},
        #{capacity.dateNumber},
        #{capacity.totalCapacity},
        #{capacity.leftCapacity},
        #{capacity.remark},
        #{capacity.registerId},
        #{capacity.createdByEmployee},
        #{capacity.createdByDept},
        #{capacity.enableFlag},
        sysdate
        from dual
    </foreach>
    ) A
</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. 变量与指针 --- WalMart 寄存箱设计者不懂计算机

    一.场景: 今天星期天,难得公司售后同事很给力,项目运行正常,无运维事务需要处理.于是满足堂客(湖南人称老婆)很久来的心愿 陪其逛街(这里要惭愧 检讨作为IT码农常常容易忽略身边的人.大声疾呼:“码农 ...

  2. [thinkphp] U方法域名支持

    域名支持如果你的应用涉及到多个子域名的操作地址,那么也可以在U方法里面指定需要生成地址的域名,例如: U('Blog/read@blog.thinkphp.cn','id=1'); @后面传入需要指定 ...

  3. python 执行顺序

    从上往下顺序执行,定义的方法和类要写在调用之前, 如果有 if __name__ == '__main__'   改方法所在的文件作为启动文件时会被调用,如果作为模块被调用时不会被执行.

  4. POJ 1741 Tree (点分治)

                                                                        Tree Time Limit: 1000MS   Memory ...

  5. 【概率dp】Divide by Zero 2017 and Codeforces Round #399 (Div. 1 + Div. 2, combined) D. Jon and Orbs

    直接暴力dp就行……f(i,j)表示前i天集齐j种类的可能性.不超过10000天就能满足要求. #include<cstdio> using namespace std; #define ...

  6. 【暴力】洛谷 P2038 NOIP2014提高组 day2 T1 无线网络发射器选址

    暴力枚举. #include<cstdio> #include<algorithm> using namespace std; ][],d,n,x,y,z,num,ans=-; ...

  7. NOIP模拟赛[补档]

    图论: 差分约束, 2 SAT 数据结构 字符串 数学: FFT / NTT / 线代 DP 计算几何 暴力 线性基 CF 724G 计划: D1 T1: 斜率优化DP D1 T2: 差分约束 D1 ...

  8. 【R实践】时间序列分析之ARIMA模型预测___R篇

    时间序列分析之ARIMA模型预测__R篇 之前一直用SAS做ARIMA模型预测,今天尝试用了一下R,发现灵活度更高,结果输出也更直观.现在记录一下如何用R分析ARIMA模型. 1. 处理数据 1.1. ...

  9. 【R笔记】order函数例子

    问题: R中提供的例子不太懂,为什么得出的结果是6  5  2  1  7  4 10  8  3  9呢? (ii <- order(x <- c(1,1,3:1,1:4,3), y & ...

  10. Mac Screen Capture Shortcuts

    Here's How:   To capture the entire desktop, press Command-Shift-3. The screen shot will be automati ...