2016-05-09 8 views
0

Apache POIを使用してExcelに書き込む必要があります。 1枚のシートに書き込まなければならない行の数は約57Kです。それをやるのが疲れたら、SQLエラーとネットワークIO例外が発生します。私はそれが接続を失っているためだと思っています。Apache POIで大量のデータをフェッチするときのデータベース接続を再開

o.h.engine.jdbc.spi.SqlExceptionHelper : SQL Error: 0, SQLState: 08S01 o.h.engine.jdbc.spi.SqlExceptionHelper : Network error IOException: Cannot assign requested address

ネットワークタイムアウトが発生した場合、データベースへの接続を再オープンするにはどうすればよいですか? HELP !!!!

答えて

0

ORMを使用して大きなデータを挿入する場合は、接続をフラッシュする必要があります。 のような あなたは57K行

int i=totalRows; 
for(int j=0;j<i;j++){ 
    session.save(thedatayouwantsave); 
    if(j%1000==0){ 
     session.flush(); 
    } 
} 

を持っているか、あなたのカーソルを増やすことができます。

+0

あなたが私に与えた解決策は、私の質問には関係ありません。 – Rudy

+0

保存するか、いくつかのエントリを挿入した直後にエラーが発生していますか? チェックログはいくつかのデータを挿入しています。 ?? – sunixi

+0

私はエクセルに書いています - 基本的には、データベースからApache poiを使ってエクセルに書かれた質問に言い換えれば、DB接続を失うことはないのでエラーがスローされます@sunixi – Rudy

関連する問題