工作中需要批量插入数据库,但是可能数据量太大,一次性插入会出现问题,故将原有的List集合按照一定的尺寸进行分割,然后将分割后的单个小集合做批量插入。分割的实现如下:
/**
*
* @description 分割集合
* @param
* oldList:要分割的目标集合
* batchSize:用户传入的每个批次的元素个数
* @return List<List> 分割后的集合集
* @date 2017年7月13日
*/
public static <T> List<List<T>> splitList(List<T> oldList, int batchSize) {
if (batchSize < 1)
return null;
List<List<T>> result = new ArrayList<List<T>>();
int size = oldList.size();
int count = (size + batchSize - 1) / batchSize;
for (int i = 0; i < count; i++) {
int fromIndex = i * batchSize;
int toIndex = (i + 1) * batchSize > size ? size : (i + 1) * batchSize;
List<T> subList = oldList.subList(fromIndex, toIndex);
r