2

私のプロセスでは、JDBC を使用して 40,000 を超えるデータ レコードを処理しました。パフォーマンスを向上させるために、PreparedStatement とバッチ更新を使用しています。

バッチ更新で例外を処理するための提案が必要ですか? 例外の処理方法、40,000 レコード中 5001 レコードの処理中に例外が発生したことを知る方法は?

前もって感謝します

4

3 に答える 3

1

BatchUpdateException を利用できます。次のコードを参照してください。ここでエラーを把握できます。

try {
  // statements related to batch updates....
} catch (BatchUpdateException be) {
   //handle batch update exception
   be.printStackTrace();
   int[] counts = be.getUpdateCounts();
   for (int i=0; i<counts.length; i++) {
       System.out.println("Statement["+i+"] :"+counts[i]);
   }
}
于 2012-09-22T09:28:55.220 に答える
0

BatchUpdateException を使用して、バッチ更新の例外を処理します

于 2013-10-01T08:01:14.400 に答える
0

getCause() および getNextException() を使用して例外を分析すると、最終的に JDBCException/SQLException が見つかります。

ここで、congrete database-depend-exception にアップキャストします。確かに、congrete problem/congrete インデックス (つまり、nr 5001) の識別子が見つかります。

また、jdbc バージョンがより高い別の JDBC ドライバー (jdbc4 など) も試してください。

于 2012-09-19T12:45:52.543 に答える