List进行分隔,分批插入数据库
背景,当数据集合超过一定数据量时,则会插入失败,需要将集合进行分隔,分批插入
/** * 分批插入-公共方法 * @param objects:数据集合 * @param subSize:单次插入的条数 */ public static <E> List<List<E>> splitTo(List<E> objects, int subSize) { //1.确定数据要分几次插入(根据总条数和每次插入条数) List<List<E>> lists = new ArrayList(); int idCount = objects.size(); //插入次数(批量插入数据库次数) int loopTimes = idCount / subSize; if (loopTimes * subSize < idCount) { loopTimes++; } //2.把每一次插入的数据放到双重集合里 for(int i = 0; i < loopTimes; ++i) { int fromIndex = i * subSize; int toIndex = (i + 1) * subSize; lists.add(objects.subList(fromIndex, toIndex > idCount ? idCount : toIndex)); } return lists; }