一个示例:
public static void main(String[] args) {
ArrayList resultList = new ArrayList<>();
// 模拟一个需要in查询的数组
ArrayList arrayList = new ArrayList<>();
for (int i = 0; i < 2003; i++) {
arrayList.add(i);
}
// 获得倍数,也就是循环查询次数。
Integer a = (int) Math.ceil(new Double(arrayList.size())/new Double(1000));
for (int i = 0; i < a; i++) {
ArrayList tempRkIdList = new ArrayList<>();
for (int j = 0; j < 1000; j++) {
if ((i*1000 +j) >= arrayList.size()){
break;
}
tempRkIdList.add(i*1000 + j);
}
// 查询
System.out.println(tempRkIdList.size());
resultList.addAll(tempRkIdList);
}
System.out.println(resultList.size());
}
抽出方法:
public static List> getSmallListArray(List bigList){
List> resultList = new ArrayList<>();
// 获得倍数,也就是循环查询次数。
Integer num = (int) Math.ceil(new Double(bigList.size())/new Double(1000));
for (int i = 0; i < num; i++) {
List tempRkIdList = new ArrayList<>();
for (int j = 0; j < 1000; j++) {
if ((i*1000 +j) >= bigList.size()){
break;
}
tempRkIdList.add(bigList.get((i*1000 + j)));
}
resultList.add(tempRkIdList);
}
return resultList;
}
重新运行:
public static void main(String[] args) {
ArrayList resultList = new ArrayList<>();
// 模拟一个需要in查询的数组
ArrayList arrayList = new ArrayList<>();
for (int i = 0; i < 2003; i++) {
arrayList.add(String.valueOf(i));
}
List> smallListArray = getSmallListArray(arrayList);
for (List list : smallListArray) {
System.out.println(list.size());
// 查询代码,获得list
//resultList.addAll(list)
}
//System.out.println(resultList.size());
}
2、批量保存模板
注意 () 不能省
数据原配置要加上:&allowMultiQueries=true
3、批量更新模板INSERT INTO SQ_CONTROL_INFO ( ID, RK_ID ) VALUES ( #{item.id}, #{item.rkId} )
数据原配置要加上:&allowMultiQueries=true
update CONTROL_INFO set <更新代码> where id = #{controlInfo.id}



