我需要将一个表导出到一个 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/