批量插入时如果一次插入的对象过多会导致超过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分为多个子集合的更多相关文章

  1. C# 如何将List拆分成多个子集合

    网上的例子: 问:List<string> list = new List<string>();        for (int i = 1; i < 95; i++)  ...

  2. 【ASP.NET实战教程】ASP.NET实战教程大集合,各种项目实战集合

    [ASP.NET实战教程]ASP.NET实战教程大集合,各种项目实战集合,希望大家可以好好学习教程中,有的比较老了,但是一直很经典!!!!论坛中很多小伙伴说.net没有实战教程学习,所以小编连夜搜集整 ...

  3. 杂项:大数据 (巨量数据集合(IT行业术语))

    ylbtech-杂项:大数据 (巨量数据集合(IT行业术语)) 大数据(big data),指无法在一定时间范围内用常规软件工具进行捕捉.管理和处理的数据集合,是需要新处理模式才能具有更强的决策力.洞 ...

  4. 黑马基础阶段测试题:创建一个存储字符串的集合list,向list中添加以下字符串:”C++”、”Java”、” Python”、”大数据与云计算”。遍历集合,将长度小于5的字符串从集合中删除,删除成功后,打印集合中的所有元素

    package com.swift; import java.util.ArrayList; import java.util.List; import java.util.ListIterator; ...

  5. 大数据之路week02 List集合的子类

    1:List集合的子类(掌握) (1)List的子类特点 ArrayList: 底层数据结构是数组,查询快,增删慢. 线程不安全,效率高. Vector: 底层数据结构是数组,查询快,增删慢. 线程安 ...

  6. Oracle 对某张表中的某一列进行取余,将结果集分为多个集合

    比如分为 5个集合,那么就用某一列和5 取余 ,分别可以取  余数为 0.1.2.3.4 的结果集,那么就把集合分为5个小的集合了 1.取余数为 0 的集合 select * from (select ...

  7. 【JAVA集合框架一 】java集合框架官方介绍 Collections Framework Overview 集合框架总览 翻译 javase8 集合官方文档中文版

    原文链接: https://docs.oracle.com/javase/8/docs/technotes/guides/collections/overview.html 原文内容也一并附加在本文最 ...

  8. 牛客网Java刷题知识点之Java 集合框架的构成、集合框架中的迭代器Iterator、集合框架中的集合接口Collection(List和Set)、集合框架中的Map集合

    不多说,直接上干货! 集合框架中包含了大量集合接口.这些接口的实现类和操作它们的算法. 集合容器因为内部的数据结构不同,有多种具体容器. 不断的向上抽取,就形成了集合框架. Map是一次添加一对元素. ...

  9. 【集合系列】- 初探java集合框架图

    一.集合类简介 Java集合就像一种容器,可以把多个对象(实际上是对象的引用,但习惯上都称对象)"丢进"该容器中.从Java 5 增加了泛型以后,Java集合可以记住容器中对象的数 ...

随机推荐

  1. .Net 题目

    1.简述public.private.protected.Internal修饰符的访问权限 public:公共成员,完全公开,没有访问限制. private:私有成员,在类的内部才可以访问. prot ...

  2. tensorflow应用于手写数字识别(第二版)

    import tensorflow as tf from tensorflow.examples.tutorials.mnist import input_data#载入数据集 mnist = inp ...

  3. Linux学习-第二章(命令)20200216

  4. scala通过尾递归解析提取字段信息

    一.背景 获取数据中以“|”作为字段间的分隔符,但个别字段中数据也是以“|”作为分隔符.因此,在字段提取时需要保护数据完整性. 二.实现 1.数据以“|”分隔,可以采用递归方式迭代解析.通过尾递归方式 ...

  5. 合并两个word文档,保持样式不变

    一.需求说明 例如将封面插入到word正文上方 二.导入依赖 <dependency> <groupId>org.apache.poi</groupId> < ...

  6. java基础二 分支循环

    分支循环:    if...    if...else...    if...else if...    if...else if...else...    switch...case...defau ...

  7. phpmyadmin拿网站shell

    开门见山 1. 找到一个赌博网站,发现存在php探针界面,在下面输入密码尝试用弱口令进行连接,尝试是否成功 失败的结果是这样. 2. 成功! 3. 连接成功的,点击phpMyAdmin管理,进行弱口令 ...

  8. delphi 文本 记录 流式 读写文件

    unit Unit1; interface uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System ...

  9. mysql查询用if控制显示列

    1: select *,if(sex=1,”男”,”女”) as sex from user2: select CASE sex WHEN 1 THEN ‘男’ ELSE ‘女’ END as sex ...

  10. html中的标签总结

    HTML <ul> 元素(或称 HTML 无序列表元素)表示一个内可含多个元素的无序列表或项目符号列表 <ol>元素中的顺序是有意义的 <ul> 元素用来将没有数字 ...