CSV 流式导出
随着业务的不断壮大发展,需要导出的数据量也越来越大!普通的EXCEL导出导出一份上万条的数据可能会用几分钟,十万条和百万条的数据量更是不敢想象,可能直接就OOM了。
所以我们需要找到更快速,减少内存开销的方法来处理导出。
我这里会介绍一种流式处理导出的方法,自己写成了一个通用工具,以便不同的服务调用。
实现
一、获取数据处理成可用的数据
1、实现类需要实现 ExportProcessor
2、查询条件需要继承ExportQuery
API接口:
public interface ExportProcessor<Query extends ExportQuery> {
ExportResult exectue(Query query);
default boolean hasNext(Pager page) {
if (page == null) {
return false;
}
Pager.PageData pageData = page.getPage();
if (pageData == null) {
return