1

テーブルをCSVファイルにエクスポートし、JSF /IcefacesWebアプリケーションを介してダウンロードするために提供する必要があります。

どうやってやるの?20以上の列と10を超えるMIO行を持つテーブルがあります。

現時点では、Javaスレッドを使用して、すべてのデータをRAMにロードしています。次に、新しいファイルを作成し、コレクションの書き込み行をファイルに繰り返します。スレッドが完了すると、ユーザーはサーブレットを介して大きなファイルをダウンロードできます。

しかし、私はそれほど多くのGBをRAMに書き込みたくありません。メモリの問題が発生しないように、セキュリティで保護することはできません。

休止状態が私のためにそれをすることは可能ですか?それとも誰かが他のアイデアを持っていますか?

DB2Datebaseに接続しています。エクスポートしたいテーブルはHibernateBeanに接続されていますが、ネイティブSQLを作成することもできます。

ご返信ありがとうございます!

4

2 に答える 2

3

ファイルの中間段階が必要ですか?データベースからロードして、各行のサーブレット出力ストリームに書き込んでみましたか?そうすれば、クライアントとデータベースの間のパイプとして機能しているだけです。

ヘッダーを適切に設定するだけcontent-dispositionで、受信データをCSVファイル自体として扱うようにクライアントのブラウザに通知されます。

于 2012-10-12T11:40:02.113 に答える
1

私も同様の問題を経験しました。問題を解決する方法は、最初にディスクにCSVファイルを書き込み、DBから25Kのバッチレコードをフェッチしてファイルに保存し、必要なすべてのデータが必要になるまでこのプロセスを繰り返すことです。レポートによるファイルには書き込まれません。次に、ファイルのURLをクライアントに送信してファイルをダウンロードします。

于 2012-10-12T11:41:02.640 に答える