前言

不用说也知道,一次性读取出那么大的数据是疯了吗,虚拟机能承受的聊那么大的对象吗?,所以我们需要分批进行读取。

下面是使用fenduan 每1万条进行一次读取执行

1、传入总数和每多少进行分段 制作为map

package com.duodian.youhui.admin.utils;import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;import java.util.TreeMap;@Service
@Slf4j
public class JavaHeapSpaceUtilsForCouponGood {/*** @Desc: 传入总数和每多少进行分段* @Date:  2018/8/28 下午1:36.*/public static TreeMap<Long,Long> getStartIdAndEndId(Long count, Long fenduan){TreeMap<Long,Long> map = new TreeMap();Long num = count / fenduan;Long yushu = count % fenduan;for (int i = 1; i <= num; i++) {map.put((i - 1) * fenduan + 1, i * fenduan);}Long yushufinal = num * fenduan + yushu;map.put(num * fenduan + 1, yushufinal);return map ;}}

2、开始执行

package com.duodian.youhui.admin.moudle.xiaodang.impl;import com.duodian.youhui.admin.moudle.coupon.service.CouponItemGoodService;
import com.duodian.youhui.admin.moudle.xiaodang.XiaoDangService;
import com.duodian.youhui.admin.moudle.xiaodang.XiaoDuoDataInsertService;
import com.duodian.youhui.admin.utils.JavaHeapSpaceUtilsForCouponGood;
import com.duodian.youhui.data.xiaodang.XiaodangInsertData;
import com.duodian.youhui.entity.db.coupon.CouponItemGood;
import com.duodian.youhui.entity.db.coupon.CouponItemGoodAttachment;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;import javax.annotation.Resource;
import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.TreeMap;/*** @Description* @Author HealerJean* @Date 2018/4/19  下午1:58.*/
@Service
@Slf4j
public class XiaoDangServiceImpl implements XiaoDangService {//多点数据源@Resourceprivate CouponItemGoodService  couponItemGoodService ;//小当数据源@Resourceprivate XiaoDuoDataInsertService xiaoDuoDataInsertService;public void keyTransferToXiaoDang(Long taobaoUserInfoId) {//获取所有的相关的 id,默认是有顺序的,正常我们根据需要进行根据我们需求进行id排序List<Long> ids = couponItemGoodService.countAllCouponItemGood();TreeMap<Long,Long> map = JavaHeapSpaceUtilsForCouponGood.getStartIdAndEndId(Long.valueOf(ids.size()),10000L );for(Long key:map.keySet()){//在ids 进行划分。然后获取List<Long> idParams = ids.subList(key.intValue()-1, map.get(key).intValue());XiaodangInsertData xiaodangInsertData = couponItemGoodService.keyTransferToXiaoDuo(taobaoUserInfoId ,idParams);for(CouponItemGood couponItemGood : xiaodangInsertData.getCouponItemGoods()){try {List<CouponItemGoodAttachment> couponItemGoodAttachments = couponItemGoodService.couponItemGoodAttachments(couponItemGood.getId());xiaoDuoDataInsertService.insertCouponItemGood(couponItemGood,couponItemGoodAttachments, xiaodangInsertData.getTaobaoUserInfo());}catch (Exception e){log.error("迁移过程中的异常"+couponItemGood.getId()+":"+e.getMessage());continue;}}log.info(key + "到" + map.get(key) + "迁移完成");}}

JAVA一次性读取Mysql几十万条大数据的处理相关推荐

  1. Java代码读取MySQL数据,遇到‘0000-00-00’报错Value ‘0000-00-00‘ can not be represented as java.sql.Date

    报错 再使用Java代码读取MySQL数据的时候,读取date格式的数据,然后使用DateTimeFormatter格式化的时候突然在控制台发现了报错,Value '0000-00-00' can n ...

  2. Java 程序读取Mysql数据库时间信息与真实时间相差 13、14 小时、SQLException: HOUR_OF_DAY: 2 -> 3

    CST时区引起的异常: Java 程序读取Mysql数据库时间信息,与真实时间相差 13.14 小时 java.sql.SQLException: HOUR_OF_DAY: 2 -> 3 原因: ...

  3. Java程序员必备的10个大数据框架

    当今IT开发人员面对的最大挑战就是复杂性,硬件越来越复杂,OS越来越复杂,编程语言和API越来越复杂,我们构建的应用也越来越复杂.根据外媒的一项调查报告,小千列出了Java程序员在过去12个月内一直使 ...

  4. php 去掉无关数据,php 读取 mysql 表中的double数据,去掉多余的0

    php 读取 mysql 表中的double数据,去掉多余的0 mysql 中有 ttt 表结构和数据如下 CREATE TABLE `ttt` ( `id` int(11) NOT NULL AUT ...

  5. java 操作 word 表格和样式,java读取word表格中的表格 java如何读取word中的excel表格数据...

    Java 利用poi 可以直接读取word中的表格保持样式生1.读取word 2003及word 2007需要的jar包 读取 2003 版本(.doc)的word文件相对来说比较简单,只需要 poi ...

  6. Java如何给Mysql中插入year类型数据

    文章目录 Java如何给Mysql中插入year类型数据 实际问题: 解决方案: 从数据库中读取year类型数据到Java 从Java中往数据库存储year数据 Java如何给Mysql中插入year ...

  7. 爬取猫眼十万条评论数据

    爬取猫眼十万条评论数据 写在之前 我之前看了一些关于抓包的文章,还以为猫眼的接口都要通过fiddler去抓包,但是我错了,fiddler出了点问题,后来用夜神模拟器去模拟手机,但是一直抓不到想要的包, ...

  8. JAVA——一次性读取或者写入文本文件所有内容

    一次性读取文本文件所有内容 public String readFileToString(String fileName) { String encoding = "UTF-8"; ...

  9. MySQL数据库如何解决大数据量存储问题

    FROM http://blog.csdn.net/likika2012/article/details/38816037 各位高手您们好,我最近接手公司里一个比较棘手的问题,关于如何利用MySQL存 ...

最新文章

  1. jQuery之父强烈推荐之jQuery实战
  2. 本地Run Page时报检测到意外的 URL 参数,它将被忽略。
  3. 【洛谷P4841】城市规划【指数型生成函数】【麦克劳林级数】【多项式对数】
  4. JSON 格式化 显示到页面中
  5. No repository found containing,eclipse 自动更新erro 解决
  6. .NET MVC 遇到的小问题
  7. 华为机试HJ64:MP3光标位置
  8. 获取批量导入数据后,所产生所有自增ID的值
  9. 【数学基础】特征值,特征向量与SVD奇异值分解
  10. 大学生 大创 软著申请指南(图文含模板)(专用于大创,这篇就够了!纯干货!)
  11. oracle数据库提示ORA-01033
  12. win10计算机加域步骤,Windows域是什么|win10系统加入域的详细步骤
  13. EAS BOS数据库更新
  14. D-Tale,实现Pandas GUI高效数据分析
  15. 为什么看起来不是很复杂的网站,淘宝、腾讯却需要大量顶尖高手来开发?
  16. 天啦噜!Stateflow动态测试竟然so easy
  17. PTA7-22 龟兔赛跑
  18. 深度学习-核对矩阵维度
  19. 指纹打卡,IC卡打卡,人脸识别打卡面试题
  20. linux trac svn,Ubuntu安装Trac SVN

热门文章

  1. Forter在过去12个月营收翻番;融资3亿美元,估值达到30亿美元
  2. Windows装机必备常用软件
  3. OGNL表达式语言浅谈
  4. 【实用】如何在windows下快速截图?
  5. html微信怎么转发,微信朋友圈怎么转发
  6. 这本书为什么会被誉为Spring开发百科全书(文末附带源码视频)
  7. 大白话给你讲明白数据仓库
  8. 05 Redis 持久化的设计和实现
  9. ACM基础题 | 相遇周期_HDU-1713(Java实现)
  10. 模糊控制洗衣机c语言程序,以洗衣机模糊控制为例的教学案例设计方法