List 数据分批入库
直接贴代码,主要运用
List<E> subList(int fromIndex, int toIndex); 把 List 分割
/**
* 保存批价结果
*
* @param priceResult 批价结果
* @throws Exception 异常
*/
private void savePriceResult(List<AmountPo> priceResult) throws Exception {
if (CheckUtils.isNotEmpty(priceResult)) {
//很大的一个list 比如:20W条数据
int size = priceResult.size();
int startIndex = 0;
//每批入库list大小 比如:5000条一批
int endIndex = (int) MAX_SIZE;
//定义临时list
List<AmountPo> amountPos;
//分批入库
while (true) {
endIndex = endIndex > size ? size : endIndex;
//list.subList 分割成小的list
amountPos = priceResult.subList(startIndex, endIndex);
if (amountPos.size() == MAX_SIZE) {
//执行入库操作
amountDao.batchAdd(amountPos);
} else {
//最后一批入库数据
if (CheckUtils.isNotEmpty(amountPos)) {
amountDao.batchAdd(amountPos);
}
break;
}
startIndex = endIndex;
endIndex = (int) (startIndex + MAX_SIZE);
}
} }
List 数据分批入库的更多相关文章
- HBase 写优化之 BulkLoad 实现数据快速入库
在第一次建立Hbase表的时候,我们可能需要往里面一次性导入大量的初始化数据.我们很自然地想到将数据一条条插入到Hbase中,或者通过MR方式等.但是这些方式不是慢就是在导入的过程的占用Region资 ...
- 【hbase】——HBase 写优化之 BulkLoad 实现数据快速入库
1.为何要 BulkLoad 导入?传统的 HTableOutputFormat 写 HBase 有什么问题? 我们先看下 HBase 的写流程: 通常 MapReduce 在写HBase时使用的是 ...
- Spring Boot与Mybatis 借助Fastjson快速完成数据解析入库
通过Spring Boot可以快速搭建一个项目结构,在此基础上本文就通过一个简单的例子,说明如何结合Mybatis 和 Fastjson,快速的完成一个数据的入库基本操作. 添加相关的依赖 <d ...
- Android数据分批载入-滑动究竟部自己主动载入列表
Android数据分批载入-滑动究竟部自己主动载入列表 2014年5月9日 摘自:<Android高级开发实战-ui.ndk与安全> 本博文介绍怎样进行数据分批载入,在应用开发其中会常常使 ...
- Mongoose使用案例--让JSON数据直接入库MongoDB
目录 1.准备工作. 2.配置Mongoose. 3.创建目录及文件. 4.插入数据,POST提交JSON增加一条记录. 5.查询数据,取出你插入数据库的记录. 一.准备工作 使用Express4创建 ...
- EF架构~数据分批批量提交
回到目录 对于大数据量提交,包括插入,更新和删除,我始终不建议用EF自带的方法,因为它会增加与数据库的交互次数,一般地,EF的一个上下文在提交时会打开一个数据连接,然后把转换成的SQL语句一条一条的发 ...
- PDO处理大批量数据的入库
<?php //最东端 东经135度2分30秒 //最西端 东经73度40分 //最南端 北纬3度52分 //最北端 北纬53度33分 //转换为度的单位$dbName = 'txhl';//数 ...
- NPOI大数据分批写入同个Excel
实现过程: 要导出来的数据库数据量很大,一次取出来压力有点大,故分批取出来,导入到同一个Excel. 因为Excel2003版最大行数是65536行,Excel2007开始的版本最大行数是104857 ...
- JAVA大集合数据分批次进行切割处理
今天遇到一个大集合里面的数据删除问题, 因为是一个大集合,如果同时传递到数据库,那么就会造成数据库压力 所以分批次的进行批量操作 其实 也可以采用多线程来处理或者多批次加多线程来处理都是可以的 下面的 ...
随机推荐
- 我的第一个Maven Helloworld
使用MAVEN创建项目可以有两种方式进行创建,第一种,使用mvn命令创建Maven项目,第二种,使用eclipse创建Maven项目. 在创建Maven项目之前,我们需要安装maven,并和配置JDK ...
- Python读取Excel,日期列读出来是数字的处理
Python读取Excel,里面如果是日期,直接读出来是float类型,无法直接使用. 通过判断读取表格的数据类型ctype,进一步处理. 返回的单元格内容的类型有5种: ctype: 0 empty ...
- 给阿里云主机添加swap分区,解决问题:c++: internal compiler error: Killed (program cc1plus)
前言 今天安装spdlog,一个快速得C++日志库,按照文档步骤,不料出现了一堆错误,像c++: internal compiler error: Killed (program cc1plus)等一 ...
- A New Recurrence-Network-Based Time Series Analysis Approach for Characterizing System Dynamics - Guangyu Yang, Daolin Xu * and Haicheng Zhang
Purpose: characterize the evolution of dynamical systems. In this paper, a novel method based on eps ...
- js获取当前页面的url网址信息
设置或获取整个 URL 为字符串: window.location.href 获取内容:http://10.100.0.8:7000/SVP/ "window.location.href&q ...
- tomcat集群搭建集成nginx负载均衡
软件基础+版本: 1.3台centos7系统,其中都已经配置完成了jdk环境,jdk的版本为 [root@node03 bin]# java -version java version "1 ...
- 怎样判断一个exe可执行程序是32位的还是64位的(转)
转载自:https://blog.csdn.net/qq_23308823/article/details/54898119 怎样判断一个exe可执行程序是32位的还是64位的
- C#中ESRI.ArcGIS.esriSystem的引用问题
ESRI.ArcGIS.esriSystem,在引用里没有它的同名引用,其实它对应的引用为ESRI.ArcGIS.System,所以添加“ESRI.ArcGIS.System”这个引用即可
- python3 求一个list的所有子集
python3 求一个list的所有子集 def PowerSetsBinary(items): N = len(items) for i in range(2 ** N):#子集的个数 combo ...
- CentOS7识别不到win10启动项的解决方法
Windows的文件系统是NTFS格式的,而CentOS是不支持NTFS格式的.因此,我们要安装另外的工具使CentOS能识别NTFS格式的文件系统. 这里我们选择ntfs-3g这个工具,安装过程如下 ...