2025年批量处理数据的三种方式

批量处理数据的三种方式直接上结论 方法一 通过 java for 循环 调用 insert 单个对象 由于每次插入都会进行一次 create SqlSession gt commit 操作 因此数据量大时禁用 在插入条数少时可用 逻辑简单 使用方便 方法二 通过 xml 拼接 sql

大家好,我是讯享网,很高兴认识大家。

直接上结论:

方法一、通过java for循环

调用insert(单个对象),由于每次插入都会进行一次create SqlSession -> commit操作,因此数据量大时禁用,在插入条数少时可用,逻辑简单,使用方便。

方法二、通过xml拼接sql foreach

效率高,但条数过长会报错,插入条数长时可用,需要预估条数,在进行跑批

方法三、批处理

java中自建sqlSession ->循环insert-> commit,避免每次循环操作都进行commit,同方法二插入条数长时可用,需要预估条数,在进行跑批

 mysql:


讯享网

 sqlserver:

JAVA将数据再次分流的一种方式:

 / * 数据分批 * @param oldList 需要分批的集合 * @param count 分批次数 * @param <T> * @return */ public static <T> List<List<T>> groupByListCount(List<T> oldList, int count) { if (count < 1) { throw new IllegalArgumentException("num < 1"); } List<List<T>> result = new ArrayList<List<T>>(count); if (oldList.size() < count) { result.add(oldList); return result; } int size = oldList.size() / count; int p = oldList.size() % count; int idx = 0; for (int i = 0; i < count; i++) { int endIndex = idx + size; if (i < p) { endIndex++; } endIndex = Math.min(endIndex, oldList.size()); List<T> list = oldList.subList(idx, endIndex); idx = endIndex; result.add(list); } return result; }

讯享网

参考文献:

mysql foreach 批量操作_kai666ling的博客-CSDN博客_foreach批量查询

mysql批量插入效率探究_superfengwu的博客-CSDN博客_mysql 批量插入效率

sqlserver [实验]mybatis批量插入方式的比较 - 简书

小讯
上一篇 2025-04-10 08:21
下一篇 2025-03-22 11:36

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/115792.html