刚开始的情况是一条sql语句将数据库中的所有数据一次全部查询出来,每一条放到一个map中,最后放在list中,刚开始写的代码由于数据不多,没出现问题,后来数据达到百万后,客服在导出数据的时候直接内存溢出,于是开始查找原因,最后找到,在查询数据把数据放到map的过程中,会占用内存,百万的数据想想也是醉了,于是重新sql语句,自定义分页,查一次数据将数据插入一次Excel中,分页查询数据很好实现,在分页插入Excel这竟然被卡了足足一天,蛋疼。。。。
Excel插入数据选用的xlsx,支持插入100万多点数据,xls就不行了。上一个测试类代码:
package com.hyfd.test;
/**
* 功能:测试Excel中数据的插入
* @author yinguichun
*/
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.OutputStream;
import java.util.HashMap;
import java.util.Map;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.poifs.filesystem.POIFSFileSystem;
import org.apache.poi.xssf.streaming.SXSSFRow;
import org.