mybatis foreach 用oracle 數據庫 in 的時候最多只能1000條


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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM