分割List为指定size

背景

  老项目,用的原生的JDBC,获取连接,预编译...然后业务需要要更新很多条数据,我就写了条件为  ——IN()...

  根据传入的 list 的 size 循环的给sql语句拼接上“ ? ”为了之后的预编译

  然后~ 报错了!! 说参数组装超过 2000 个,呜呜呜~

发展

  这个时候,考虑要不要放弃多条拼接,一条一条的去更新,然而觉得那样访问数据库的次数,太多了!

  所以,既然不能超过 2000 个参数,那我截成几个小的 list 去更新不就好了?——好主意

解决

  上方法

 1     private List<List<String>>  createList(List<String> targe){
 2         List<List<String>> listArr = new ArrayList<List<String>>(); 
 3         int size = 1500;
 4         //获取被拆分的数组个数  
 5         int arrSize = targe.size()%size==0?targe.size()/size:targe.size()/size+1;  
 6         for(int i=0;i<arrSize;i++) {  
 7             List<String>  sub = new ArrayList<String>();  
 8             //把指定索引数据放入到list中  
 9             for(int j=i*size;j<=size*(i+1)-1;j++) {  
10                 if(j<=targe.size()-1) {  
11                     sub.add(targe.get(j));  
12                 }  
13             }  
14             listArr.add(sub);  
15         } 
16         return listArr;
17     }

OK,喜大普奔~

posted @ 2019-03-27 10:38  贱小提莫  阅读(436)  评论(0编辑  收藏  举报