mybtais分批insert
这里自己写了个对集合按一批的数量进行分批操作的分页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);
}
mybtais分批insert的更多相关文章
- 【OCP、OCM、高可用等】小麦苗课堂网络班招生简章(从入门到专家)--课程大纲
[OCP.OCM.高可用等]小麦苗课堂网络班招生简章(从入门到专家)--课程大纲 小麦苗信息 我的个人信息 网名:小麦苗 QQ:646634621 QQ群:618766405 我的博客:http:// ...
- 【OCP|OCM】Oracle培训考证系列
[OCP|OCM]Oracle培训考证系列 我的个人信息 网名:小麦苗 QQ:646634621 QQ群:618766405 我的博客:http://blog.itpub.net/26736162 ...
- 省市区三级-sql脚本:
/*Navicat MySQL Data Transfer Source Server : moiraiSource Server Version : 50631Source Host : 192.1 ...
- [Oracle] Bulk Insert Data
命名空间:Oracle.DataAccess.Client 组件:Oracle.DataAccess.dll(2.112.1.0) ODP.NET 版本:ODP.NET for .NET Framew ...
- EF架构~数据分批批量提交
回到目录 对于大数据量提交,包括插入,更新和删除,我始终不建议用EF自带的方法,因为它会增加与数据库的交互次数,一般地,EF的一个上下文在提交时会打开一个数据连接,然后把转换成的SQL语句一条一条的发 ...
- JDBC批量Insert深度优化(有事务)
环境: MySQL 5.1 RedHat Linux AS 5 JavaSE 1.5 DbConnectionBroker 微型数据库连接池 测试的方案: 执行10万次Insert语句,使用不同方 ...
- Bulk Insert Data
Bulk Insert Data 命名空间:Oracle.DataAccess.Client 组件:Oracle.DataAccess.dll(2.112.1.0) ODP.NET 版本:ODP.NE ...
- SQL语句 insert into 语句的写法
方式1: INSERT INTO t1(field1,field2) VALUE('001','002'); 最好的做法明确插入的每一列,列于查错,而且漏列的几率会降低! 方式2: INSERT IN ...
- 数据操纵:SELECT, INSERT, UPDATE, DELETE
SELECT 句法 SELECT [STRAIGHT_JOIN] [SQL_SMALL_RESULT] [SQL_BIG_RESULT] [SQL_BUFFER_RESULT] [SQL_CACHE ...
随机推荐
- sql (6) exists
SQL中EXISTS的用法 查询所有选修了1号课程的学生的姓名,年龄,性别首先取Student表中的一个元组,然后在SC表中依次找SC.Sno=该元组的So,并且对应的Cno='2',如果存在,则外层 ...
- python实现操作excel,数据写入excel的一行或者一列
# _*_ coding:utf-8 _*_ import random import xlwt,string class ImportData(object): def create_num(sel ...
- mui--使用mui中的图文表格组件时出现一条横线的解决方法
最近做的微信公众号点击链接跳转到H5页面,该H5页面使用mui做的,遇到的商品列表页出现一个横线的问题, 这个是修改前的图片 解决方法: <style type="text/css&q ...
- .Net 动态编译(c# 脚本)
1 用.NET提供的类动态编译代码字符串,生成DLL存于内存中,加载到程序域 2 用反射的方式调用这个DLL 将要被编译和执行的代码读入并以字符串方式保存声明CSharpCodeProvider对象实 ...
- 【JZOJ6275】小L的数列
description analysis 考虑矩阵乘法 设初始\(m×m\)矩阵上\(i\)行\(j\)列的数字表示该矩阵第\(j\)位上\(f[i]\)的指数 那么一开始表示\(f[1..k]\)的 ...
- p分位数的原理及计算
p分位数的原理及计算 大纲>> 1.统计上的分位数概念 2.分位数的计算方法及举例 2.1首先确定p分位数的位置(依据项数分为基数.偶数情况) 2.2 求上一步确定的p分位数位置处的具 ...
- thinkphp 判断请求类型
判断请求类型 在很多情况下面,我们需要判断当前操作的请求类型是GET .POST .PUT或 DELETE,一方面可以针对请求类型作出不同的逻辑处理,另外一方面有些情况下面需要验证安全性,过滤不安全的 ...
- 洛谷 P2114 [NOI2014]起床困难综合症
题目描述 21世纪,许多人得了一种奇怪的病:起床困难综合症,其临床表现为:起床难,起床后精神不佳.作为一名青春阳光好少年,atm一直坚持与起床困难综合症作斗争.通过研究相关文献,他找到了该病的发病原因 ...
- 云时代IDC自动化运维的几大神器
云时代IDC自动化运维的几大神器 2016年09月18日 10:27:41 天府云创 阅读数:1715 版权声明:本文为EnweiTech原创文章,未经博主允许不得转载. https://blog ...
- Entity Framework Code First使用者的福音 --- EF Power Tool使用记之二(问题探究)
转:http://www.cnblogs.com/LingzhiSun/archive/2011/06/13/EFPowerTool_2.html 上次为大家介绍EF Power Tool之后,不 ...