分割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,喜大普奔~

转载于:https://www.cnblogs.com/sun7897/p/10605867.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值