大集合List分为多个子集合
批量插入时如果一次插入的对象过多会导致超过mysql限定sql长度,通过命令查看
show VARIABLES like 'max_allowed_packet' ,如果数据太多,就将大集合List分为多个小集合,分多次批量插入吧。
附上源码
import com.duotin.util.beans.SubListView; import java.util.ArrayList;
import java.util.Collections;
import java.util.List; /**
*
* Created by xueshan on 17/1/22.
*/
public class CommonBusiLogic { /**
*将大集合分成多个子集合
* @param list
* @param subListSize 大小
* @param <T>
* @return
*/
public static <T> List<List<T>> getSubListBySubListSize(List<T> list, Integer subListSize){
List<List<T>> allList = new ArrayList<>();
if(CollectionUtils.isEmpty(list)){
return Collections.emptyList();
}
if(list.size()<=subListSize){
allList.add(list);
return allList;
}
for(SubListView subListView:getSubListViewList(list.size(), subListSize)){
allList.add(list.subList(subListView.getStartIndex(),subListView.getEndIndex()));
}
return allList;
}
private static List<SubListView> getSubListViewList(Integer listSize, Integer subListSize){
List<SubListView> subListViewList = new ArrayList<>();
Integer multipleSize=listSize/subListSize;
for(int i=0;i<listSize/subListSize;i++){
SubListView subListView = new SubListView();
subListView.setStartIndex(i);
subListView.setEndIndex(i+subListSize);
subListView.setSubListSize(subListSize);
subListViewList.add(subListView);
}
if(listSize%subListSize>0){
SubListView endSubListView = new SubListView();
endSubListView.setStartIndex(multipleSize*subListSize);
endSubListView.setEndIndex(multipleSize*subListSize+listSize%subListSize);
endSubListView.setSubListSize(subListSize);
subListViewList.add(endSubListView);
}
return subListViewList; }
}
大集合List分为多个子集合的更多相关文章
- C# 如何将List拆分成多个子集合
网上的例子: 问:List<string> list = new List<string>(); for (int i = 1; i < 95; i++) ...
- 【ASP.NET实战教程】ASP.NET实战教程大集合,各种项目实战集合
[ASP.NET实战教程]ASP.NET实战教程大集合,各种项目实战集合,希望大家可以好好学习教程中,有的比较老了,但是一直很经典!!!!论坛中很多小伙伴说.net没有实战教程学习,所以小编连夜搜集整 ...
- 杂项:大数据 (巨量数据集合(IT行业术语))
ylbtech-杂项:大数据 (巨量数据集合(IT行业术语)) 大数据(big data),指无法在一定时间范围内用常规软件工具进行捕捉.管理和处理的数据集合,是需要新处理模式才能具有更强的决策力.洞 ...
- 黑马基础阶段测试题:创建一个存储字符串的集合list,向list中添加以下字符串:”C++”、”Java”、” Python”、”大数据与云计算”。遍历集合,将长度小于5的字符串从集合中删除,删除成功后,打印集合中的所有元素
package com.swift; import java.util.ArrayList; import java.util.List; import java.util.ListIterator; ...
- 大数据之路week02 List集合的子类
1:List集合的子类(掌握) (1)List的子类特点 ArrayList: 底层数据结构是数组,查询快,增删慢. 线程不安全,效率高. Vector: 底层数据结构是数组,查询快,增删慢. 线程安 ...
- Oracle 对某张表中的某一列进行取余,将结果集分为多个集合
比如分为 5个集合,那么就用某一列和5 取余 ,分别可以取 余数为 0.1.2.3.4 的结果集,那么就把集合分为5个小的集合了 1.取余数为 0 的集合 select * from (select ...
- 【JAVA集合框架一 】java集合框架官方介绍 Collections Framework Overview 集合框架总览 翻译 javase8 集合官方文档中文版
原文链接: https://docs.oracle.com/javase/8/docs/technotes/guides/collections/overview.html 原文内容也一并附加在本文最 ...
- 牛客网Java刷题知识点之Java 集合框架的构成、集合框架中的迭代器Iterator、集合框架中的集合接口Collection(List和Set)、集合框架中的Map集合
不多说,直接上干货! 集合框架中包含了大量集合接口.这些接口的实现类和操作它们的算法. 集合容器因为内部的数据结构不同,有多种具体容器. 不断的向上抽取,就形成了集合框架. Map是一次添加一对元素. ...
- 【集合系列】- 初探java集合框架图
一.集合类简介 Java集合就像一种容器,可以把多个对象(实际上是对象的引用,但习惯上都称对象)"丢进"该容器中.从Java 5 增加了泛型以后,Java集合可以记住容器中对象的数 ...
随机推荐
- 大二暑假第二周总结--开始学习Hadoop基础(一)
一.简单视频学习Hadoop的处理架构 二.简单视频学习分布式文件系统HDFS并进行简单的实践操作 简单操作教程:http://dblab.xmu.edu.cn/blog/290-2/ 注意:在建立H ...
- Cookie简单介绍
Cookie 饼干. 其实是一份小数据, 是服务器给客户端,并且存储在客户端上的一份小数据 应用场景 自动登录.浏览记录.购物车. 为什么要有这个Cookie http的请求是无状态. 客户端与服务器 ...
- (6)Mat对象的一些函数和方法的使用
首先是基本的代码整理 #include<iostream> #include<opencv.hpp> using namespace std; using namespace ...
- MySQL视图和事务
视图的操作 ...
- Fidder IOS抓包
Fiddler-HTTPS配置 手机抓包配置 手机网络配置 打开Safari浏览器输入IP+端口号:192.168.0.14:8888,安装证书 证书信任设置:通用 - 关于本机 - 证书信任设置 - ...
- linux环境java程序cpu爆表问题查证
1.top命令查找导致cup爆表的进程 2. top -H -p10832 (10832是Java进程的PID)命令找出了具体的线程 3.使用用命令 jstack 10832> jstack.t ...
- 将hello程序作为驱动程序编译进系统内核
0x00开始 恩,可能是我比较愚钝,一个内核编译搞了一天,各种问题,各种bug,几度无奈,也是因为我突发奇想,并没有按照原来的那种操作,我直接把helloworld程序放到内核模块中编译成了一个驱动程 ...
- gitlab命令详解
http://www.ruanyifeng.com/blog/2014/06/git_remote.html
- awk使用笔记
awk特殊字符打印方法: 1.awk打印双引号: awk '{print "\""}' 2.awk打印单引号: awk '{print "'\''&quo ...
- 4. 现代 javascript class 专题 和 异步专题
class 专题 定义 class //es5 类的定义 属性定义在 function 上, 方法定义在原型链上 function foobar(){ this.foo_ = 'foo'; this ...