私のプロセスでは、JDBC を使用して 40,000 を超えるデータ レコードを処理しました。パフォーマンスを向上させるために、PreparedStatement とバッチ更新を使用しています。
バッチ更新で例外を処理するための提案が必要ですか? 例外の処理方法、40,000 レコード中 5001 レコードの処理中に例外が発生したことを知る方法は?
前もって感謝します
私のプロセスでは、JDBC を使用して 40,000 を超えるデータ レコードを処理しました。パフォーマンスを向上させるために、PreparedStatement とバッチ更新を使用しています。
バッチ更新で例外を処理するための提案が必要ですか? 例外の処理方法、40,000 レコード中 5001 レコードの処理中に例外が発生したことを知る方法は?
前もって感謝します
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]);
}
}
BatchUpdateException を使用して、バッチ更新の例外を処理します
getCause() および getNextException() を使用して例外を分析すると、最終的に JDBCException/SQLException が見つかります。
ここで、congrete database-depend-exception にアップキャストします。確かに、congrete problem/congrete インデックス (つまり、nr 5001) の識別子が見つかります。
また、jdbc バージョンがより高い別の JDBC ドライバー (jdbc4 など) も試してください。