这里自己写了个对集合按一批的数量进行分批操作的分页bean,见PagenationUtil如下:

package com.util;
import java.util.List ; /**
* @author kyoxue
* @date 2018年05月31日
* @param <E> 集合存放的实体类型
*/
public class PagenationUtil<E> {
/**
* 分页的集合
*/
private List<E> list = null;
/**
* 当前页
*/
private int page =0;
/**
* 每页大小
*/
private int pageSize =0;
/**
* 集合总条数
*/
private int totalCount =0;
/**
* 总页数
*/
private int totalPage =0;
/**
* @param list 数据集合
* @param pageSize 分页大小
*/
public PagenationUtil(List<E> list,int pageSize){
this.list = list ;
this.pageSize = pageSize ;
this.totalCount = ((null == list || list.size() == 0)?0:list.size());
this.totalPage = totalCount>0?((totalCount + pageSize - 1) / pageSize):0;
}
public List<E> getPageList(){
if (totalCount == 0) {
return null;
}
if (pageSize == 0) {
return null;
}
int total = getTotalPage();
int current = getPage();
if (current > total) {
return null;
}
if (current <= 0) {
return null;
}
int start = pageSize*(current-1);
if (current == total) {
int leftLen = totalCount%pageSize;
if (leftLen>0) {
return list.subList(start, start+leftLen);
}
}
return list.subList(start, start+pageSize);
}
public int getPage() {
return page;
}
public void setPage(int page) {
this.page = page;
}
public int getTotalPage(){
return this.totalPage;
}
}

mybatis分批插入(mapper接口与sql实现示例):

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.dao.XxxMapper" > <insert id="insertBatch" parameterType="java.util.ArrayList">
insert into
t_xx(xx,yy)
values
<foreach collection="list" item="item" index="index" separator=",">
(#{item.xx},#{item.yy})
</foreach>
</insert>
</mapper>
public interface XxxMapper {
void insertBatch(List<Xx> list);
}

使用自己写的PagenationUtil,对数据集合进行分批执行sql:

PagenationUtil<XX> pageutil = new PagenationUtil<Xx>(集合, 批次数量);
int totalPage = pageutil.getTotalPage();
for (int i = 1; i < totalPage+1; i++) {
pageutil.setPage(i);
List<Xx> each = pageutil.getPageList();
xxMapper.insertBatch(each);
}

最新文章

  1. POJ 3370. Halloween treats 抽屉原理 / 鸽巢原理
  2. Web前端框架
  3. 注解:【基于主键的】Hibernate1-&gt;1关联
  4. AngularJS in Action读书笔记6(实战篇)——bug hunting
  5. box-flex不均分问题
  6. samba权限之easy举例说明--原创
  7. shell join 参数详细说明
  8. window.cookie
  9. HIBERNATE一对一双向外键联合主键关联
  10. CAS 单点登录,通过ticket 获取登录用户
  11. C语言第四次作业-嵌套作业
  12. Java开发快速上手
  13. 一天带你入门到放弃vue.js(三)
  14. visual studio code 在 mac 下按 F12无效
  15. Git关于pull,commit,push的总结
  16. 大数据入门到精通4--spark的rdd的map使用方式
  17. maven 相关问题
  18. 【转】每天一个linux命令(40):wc命令
  19. 【文档】四、Mysql Binlog事件含义详解
  20. &lt;Android Framework 之路&gt; N版本 Framework Camera的一些改动

热门文章

  1. linux 下使用scp命令传输文件
  2. vue3环境搭建以及创建简单项目。
  3. php获取本周、本月、本年的时间段
  4. 尚学python课程---11、linux环境下安装python注意
  5. laravel请求处理管道例子
  6. 全局CSS设置
  7. QT之QByteArray
  8. 8.关于ActiveMQ、RocketMQ、RabbitMQ、Kafka一些总结和区别
  9. netty http 服务器
  10. Hadoop 2.x 版本中的依赖 jar