List 数据分批入库
Posted xinxin-ting
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 数据分批入库的主要内容,如果未能解决你的问题,请参考以下文章
并发5多线程并发解析单文件大数据了量解析入库,1800万数据8线程5分钟入库