1. mysql 批量插入数据量太大,会报错
一般 批量插入会做分批次 插入,比如要插入100万条数据,分10次插入,一次性插入10万条
/**
* 功能描述 : 将一个集合分区,每个区里的元素长度是 10
*
* 这个很类似分页:pageSize 是 10 ,pageNum 是可以分几页
* @author guoyiguang
* @date 2022/9/28
* @param
* @return
*/
@Test
public void partition() throws IOException {
// 每个区的长度是 10
int pageSize = 10;
List<String> inputList = new ArrayList<>();
inputList.add("a1");
inputList.add("a2");
inputList.add("a3");
inputList.add("a4");
inputList.add("a5");
inputList.add("a6");
inputList.add("a7");
inputList.add("a8");
inputList.add("a9");
inputList.add("a10");
inputList.add("a11");
inputList.add("a12");
inputList.add("a13");
int total = 0 ;
if(inputList.size() % pageSize == 0){
total = inputList.size() / pageSize;
}else{
total = inputList.size() / pageSize +1 ;
}
List<List<String>> result = new ArrayList<>();
for(int pageNum = 0 ; pageNum < total ; pageNum++){
// java8 内存分页:类似 mysql 的 offset limit
// subList(0, 5)取得的是下标为0到4的元素,不包含下标为5的元素
result.add(inputList.stream().skip(pageNum*pageSize).limit(pageSize).collect(Collectors.toList()));
}
System.out.println(result);
System.out.println("---------------------------------------start---------------------------------------");
for(List<String> list:result){
for(String a :list){
System.out.println(a);
}
}
System.out.println("");
}