mybatis oracle批量插入保存

1:XML脚本

<insert id="importExcel">
        insert all

        <foreach collection="list" item="item" index="index" separator=" ">
            into ${tableName}
            values (#{item.c1},#{item.c2},#{item.c3},#{item.c4},#{item.c5},#{item.c6},#{item.c7},#{item.c8},#{item.c9},#{item.c10},#{item.c11},#{item.c12},#{item.c13},#{item.c14},#{item.c15},#{item.c16},#{item.c17},#{item.c18},#{item.c19},#{item.c20},#{item.c21},#{item.c22},#{item.c23},#{item.c24},#{item.c25},#{item.c26},#{item.c27})
        </foreach>

        select 1 from dual
    </insert>

2:Java代码

待插入的数据为List<对象>数据量在几千条左右,为了提高插入效率,将List拆分成较小的List然后并发执行,例如:

List<List<SdsxfTjDto>> reList = ListUtil.splitAvg(list, 100);

            reList.stream().parallel().forEach(ls ->{
                cxtjService.importExcel(tableName, ls);
            });

 

posted @ 2022-05-18 08:46  yshy  阅读(329)  评论(0编辑  收藏  举报