初次尝试从数据库导出数十万条数据到excel(java)

    某天,在一次新的需求讨论中,用户提出想要通过页面导出数据到excel,由于之前有使用poi导出数据到excel,所有在当时同意了这个需求。分析会后找dba拿取sql的时候,突然得知数据的数量级有几十万,心中一阵懵逼。

    第一次尝试:抱着侥幸的心理,依旧使用之间poi导出的方式,果然坑就在那,饶是绕不过去的,报错了tomcat:java.lang.OutOfMemoryError: Java heap space,内存溢出。百度了一下说是list集合一次获取数十万条数据,放不下了。

    第二次尝试:既然一次去几十万取不出来,那我分开获取数据呗,通过和dba的沟通,成功的实现每次获取10000条数据。恩,再次进行尝试---------还是同样的错误。静下心来缓缓,吃颗糖压压惊。选择在查询数据库前,list取值中,取值完成后,分别输出系统剩余freememory,发现了在list取值的过程中,可使用缓存急遽的下降直到报错。

     第三次尝试:拿着问题去寻找答案,经过搜索资料,各种实验,最终得出,在使用完成集合时,要及时清楚集合的缓存,主动调用垃圾回收。并且选择使用SXSSFWorkbook,恩,数据顺利的导出到了excel。

下面是下载链接:https://download.csdn.net/download/qqweede/10420893


    


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值