我们在用oracle 数据库 查询时,如果where 字句 用in ,那么in里面的内容不能超过1000(可以等于1000)。
但是实际使用时,我们可能查询修改等超过1000条。
那么可以写一个通用的方法进行分割:
1 public static <E> List<List<E>> splitList (List<E> targetList,Integer splitSize){ 2 if(targetList == null) return null; 3 Integer size = targetList.size(); 4 List<List<E>> resultList = new ArrayList<List<E>>(); 5 if(size <= splitSize) { 6 resultList.add(targetList); 7 } else { 8 for (int i = 0; i < size; i += splitSize) { 9 //用于限制最后一部分size小于splitSize的list 10 Integer limit = i+splitSize; 11 if(limit > size){ 12 limit = size; 13 } 14 resultList.add(targetList.subList(i, limit)); 15 } 16 } 17 return resultList; 18 }