int size = joblist.size(); int index= size%200; List< Job> list= new ArrayList<Job>(); for(int i=0;i<index;i++) { //获取要入库的list的数据 list =joblist.subList(i, (i+1)*200); //批量入库操作 }
int size = joblist.size(); int index= size%200; //最后一次处理的数据量 int tag = size/200; //控制循环次数 List< Job> list= new ArrayList<Job>(); for(int i=0;i<tag;i++) { //获取要入库的list的数据 list =joblist.subList(i, (i+1)*200); //批量入库操作 } list =joblist.subList(tag*200,tag*200+index); //进行剩余数据处理 不好意思啊,上面的有些错误
int index=0; for( Job job:joblist){ index++; if(index%200==0||index==joblist.size){//逢200或者遍历到最后一个数据则执行入库 //入库操作; } }
int step = 10; for(int index=0;index<list.size();index+=step){ int end = index+step; end = end>list.size()?list.size():end; List<Object> tmpList = list.subList(index,end); //TODO 入库操作 }
int index= size%200;
List< Job> list= new ArrayList<Job>();
for(int i=0;i<index;i++)
{
//获取要入库的list的数据
list =joblist.subList(i, (i+1)*200);
//批量入库操作
}
int index= size%200; //最后一次处理的数据量
int tag = size/200; //控制循环次数
List< Job> list= new ArrayList<Job>();
for(int i=0;i<tag;i++)
{
//获取要入库的list的数据
list =joblist.subList(i, (i+1)*200);
//批量入库操作
}
list =joblist.subList(tag*200,tag*200+index);
//进行剩余数据处理
不好意思啊,上面的有些错误
2、为什么要200入库一次?入库操作很麻烦?如果不是非常麻烦,完全没有必要分批次。如果size在10万以上,且入库操作很麻烦,你的业务流程有问题,请优化......................
int index=0;
for( Job job:joblist){
index++;
if(index%200==0||index==joblist.size){//逢200或者遍历到最后一个数据则执行入库
//入库操作;
}
}
for(int index=0;index<list.size();index+=step){
int end = index+step;
end = end>list.size()?list.size():end;
List<Object> tmpList = list.subList(index,end);
//TODO 入库操作
}