私はPreparedStatementaddBatchを使用しています。
行の挿入に失敗した場合などのシナリオをどのように処理する必要がありますか?
たとえば、挿入する1000行のうち、100行目が挿入に失敗し、プログラムが残りの行を挿入せずに突然終了したとします(つまり、100行目から1000行目まで)。
問題を確認できるように、失敗行を印刷したいと思います。
私はPreparedStatementaddBatchを使用しています。
行の挿入に失敗した場合などのシナリオをどのように処理する必要がありますか?
たとえば、挿入する1000行のうち、100行目が挿入に失敗し、プログラムが残りの行を挿入せずに突然終了したとします(つまり、100行目から1000行目まで)。
問題を確認できるように、失敗行を印刷したいと思います。
ExecuteBatch
エラー処理と戻り値に関するメソッドの標準的な動作はありません。使用する DBMS と JDBC ドライバーに依存します。たとえば、Oracle ドライバーは、BatchUpdateException
成功した各レコードの要素を含む配列を返します。配列のインデックスは、ステートメントに追加されたバッチのインデックスと一致します。つまり、最大の配列インデックスは、正常に挿入された最後のバッチ レコードを示します。ただし、これは特定の DMBS/ドライバーの組み合わせでは有効ではない可能性があるため、確認する唯一の方法は、デバッガーを使用し、エラーをシミュレートし、例外キャッチ コードにブレークポイントを設定し、例外オブジェクトを確認することです。