java - 将大数据从数据库导出到 CSV

标签 java hibernate db2 export

我需要将一个表导出到一个 CSV 文件中,并通过我的 JSF/Icefaces Web 应用程序提供下载。

我该怎么做?我有一个包含 20 多个列和超过 10 个 MIO 行的表格。

目前,我使用 Java 线程,将所有数据加载到 ram 中。然后我创建一个新的文件并将行的集合写入行迭代到文件中。 Thread完成后,用户可以通过Servlet下载大文件。

但我不想将这么多 GB 写入 ram。我不能保证,不是内存问题..

hibernate 有可能为我做这件事吗?或者有人有其他想法?

我已连接到 DB2 数据库。我要导出的表连接到一个 hibernate bean,但也可以编写 native sql。

感谢您的回复!

最佳答案

您需要文件的中间阶段吗?您是否尝试过从数据库加载并写入您的 servlet 输出流每一行?这样您就可以简单地充当客户端和数据库之间的管道。

只需适本地设置您的 content-disposition header ,这将向客户端的浏览器发出信号,将传入的数据本身视为 CSV 文件。

关于java - 将大数据从数据库导出到 CSV,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12858227/

相关文章:

sql - 如何高效查询每个类别的 n 条记录

docker - 如何使用ASP.Net Core从Docker容器连接到DB2?

java - 转换失败异常 : Persisting a DBObject but retrieving returns a LinkedHashMap<? , ?>

java - 关于类中类的 OOP 相关问题

java方法重载继承与多态

java - 使用quartz调度器调度java程序

java - 只读模式下不允许写操作 (FlushMode.MANUAL)

java - 在 Apache Derby Embedded 上调用 last_insert_id() 时出现 Hibernate 异常

java - driver.quit后如何打开chromedriver的新 session ?

SQL 并排查询。匹配路线