首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >java导出百万条数据

java导出百万条数据

原创
作者头像
用户3293499
修改2024-12-19 13:45:31
修改2024-12-19 13:45:31
2130
举报
文章被收录于专栏:Java杂谈Java杂谈

导出百万条数据时,通过POI导出到Excel基本上是无解了,此时可以选择导出为csv格式,csv类似于文本文档,但是可以使用Excel或者WPS打开。

代码语言:java
复制
 String[] tableOne = {"A","B","C","D","E"};
 String fileName = fid+".csv";
ScrollableResults scRes = null;
try(BufferedWriter out = new BufferedWriter(new FileWriter(temp+fileName))
{
    out.write(String.join(",", tableOne));
    List<Data> datas = getData();
    for(Data d : datas){
        out.newLine();
        out.write(parseData(d))
    }
}

若此时百万条数据都是在数据库,则不宜一次性读取完成,可以使用JDBC的逐条读取,使用Hibernate时,可以使用ScrollableResults,Hibernate也是对JDBC封装了一下,同一个原理。

代码语言:java
复制
try ( ScrollableResults scrollableResults = session.createQuery(
		"select p " +
		"from Person p " +
		"where p.name like :name" )
		.setParameter( "name", "J%" )
		.scroll()
) {
	while(scrollableResults.next()) {
		Person person = (Person) scrollableResults.get()[0];
		process(person);
	}
}

注意,数据一定要进行排序,否则会出现意想不到的问题。另外由于导出数据过多,WPS或者Excel可能看不完(WPS只能看到79万左右),最好分工作簿导出

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档