zoukankan      html  css  js  c++  java
  • oracle+ibatis 批量插入-支持序列自增

    首先请先看我前面一篇帖子了解oracle批量插入的sql:【oracle 批量插入-支持序列自增

    我用的ibatis2.0,sqlMap文件引入的标签如下:

    <!DOCTYPE sqlMap PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN" "http://ibatis.apache.org/dtd/sql-map-2.dtd" >

    1、java代码:

    TestBatch:数据库对应的对象;
    该方法入参是一个List<TestBatch>,将list放入一个map里面,然后调用对应的sqlMap。
        @Override
        public void insertBatch(List<TestBatch> testBatchList) {
            HashMap paramMap = new HashMap(); 
            paramMap.put("v", tradeDetailList);
            getSqlMapClientTemplate().insert(getSqlMapSpace() + ".insertBatch", paramMap);
        }

    2、sqlMap:

    <insert id="insertBatch" parameterClass="net.sf.json.JSONObject">
        insert into test_batch (id, name, account)
        select seq_test_batch.nextval, name, account
        from (
            <iterate property="v" conjunction="union">  
                select 
                    #v[].name# name,
                    #v[].account# account,
                from dual 
            </iterate>
        ) ctd
    </insert>
    |seq_test_batch.nextval:获取序列。
    |iterate标签内红色加粗的字体是固定写法,当然property="v"中,"v"是可以自定定义的。
    |循环后的结果其实就是拼成下图红框内容的SQL。

    亲测,该版本ibatis+oracle可用。460条数据插入时间5秒左右,当然我是用项目开发环境测试的,测试的那张表有30多个字段。

  • 相关阅读:
    串口基本知识
    20180826
    20180819
    自动化测试
    说话有重点 测试思维
    学习C语言,在软件测试中如何用?
    PC能替代服务器吗?
    服务器与普通电脑的区别?
    k8s 回滚应用
    k8s Service
  • 原文地址:https://www.cnblogs.com/frank-quan/p/6044317.html
Copyright © 2011-2022 走看看