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