私のプログラムが実行されるたびに、JDBCバッチ挿入(一度に約1000行挿入)を実行しています。しかし、いくつかのレコードによってスローされた例外を適切に処理することはできません。JDBCバッチ挿入例外処理
1000レコードのうち100番目のレコードが無効なデータまたは一部の値のサイズが列サイズを超えているため、例外がスローされているとします。例外が発生すると、残りのレコードは挿入されませんとプログラムが間に失敗します。
私が望むのは、100番目のレコードが例外をスローしても、残りの挿入はプログラムの終了前にいつものように行われるはずです。
これを達成する方法を理解できません。提案してください。
編集:ここでは
は、バッチ挿入のために、私は私のアプリで使用していたサンプルコードです。結果セットに約1000レコードがあるとします。
PreparedStatement ps = null;
while(rs.next()){
//Retrieve the value and set it to a Prepared statement
String name = rs.getString("Name");
int age = rs.getInt("Age");
ps.setInt(1, age);
ps.setString(2, name);
//Finally invoke addBatch
ps.addBatch();
}
//Finally call the executeBatch method
ps.executeBatch();
100番目のレコードが例外をスローしている場合は、100番目のレコードも100番目のレコードからのみトリガーします。これを行う方法はありますか?例外を投げたレコードからプロセスを再起動できるようにするには以降もう一度終了しますか?これを達成する方法は?
あなたのコードは? – Alfabravo