1

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

我怎样才能做到这一点?我有一个包含 20 多个列和 10 多个 MIO 行的表。

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

但我不想将这么多 GB 写入 ram。我无法确保安全,以免出现内存问题..

休眠有可能为我做吗?还是有人有其他想法?

我连接到一个 DB2 数据库。我要导出的表连接到休眠 bean,但也可以编写本机 sql。

感谢您的回复!

4

2 回答 2

3

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

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

于 2012-10-12T11:40:02.113 回答
1

我也遇到过类似的问题,我解决问题的方法是我最初在磁盘上写入一个 CSV 文件并从数据库中获取 25K 批处理记录并保存到文件中,然后反复重复该过程直到所有需要的数据由报告不写在文件上。然后将文件 URL 发送给客户端以下载文件。

于 2012-10-12T11:41:02.640 回答