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); });