public class batchTest {
public static void main(String[] args) {
//batchInsert1();
batchInsert2();
}
//批量操作
private static void batchInsert1(){
int total = 2222;
int per = 300; //每次最多新增次数
int num = total / per; //至少需要 7
int temp = num * per; //7*300 2100
int least = total - temp;//2222-2100 122至少
List<String> list = new ArrayList<>();
for (int i = 0; i < temp; i++) {
//业务
list.add(""+i);
if ((i + 1) % per == 0){//每300插入一次
batch(list);
//清空
list = new ArrayList<>();
}
}
if (least != 0){ //<per 剩下99次插入
//清空
list = new ArrayList<>();
for (int i = temp;i < total; i++){
//业务
list.add(""+i);
}
batch(list);
}
}
//批量操作2
private static void batchInsert2(){
int total = 2222;//
int per = 300;//每次最多新增次数
int least = total / per;// 分批 7
int left = total % per;//剩下 122
int index = 0;
List<String> list = new ArrayList<>();
if (least > 0) {
for (int i = 0; i < least * per; i++) {
list.add(""+i);
if (((i + 1) % per) == 0) {
batch(list);
//清空
list = new ArrayList<>();
}
}
}
if (left != 0) {
index = least * per;
//清空
list = new ArrayList<>();
for (int i = index; i < total; i++) {
list.add(""+i);
}
batch(list);
}
}
private static void batch(List list){
System.out.println("======>"+list.size());
}
}
输出
======>300
======>300
======>300
======>300
======>300
======>300
======>300
======>122