我們在用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 }