私はaddBatch
で追加されたたくさんのバッチステートメントを持つjava.sql.Statement
を持っています。 executeBatch
を実行すると、最初のステートメントの後にBatchUpdateException
がスローされ、データベースの制約に違反し、残りのステートメントをすべてバッチで実行することはありません。すべてのステートメントをバッチで実行して、間違ったステートメントを無視する方法はありますか?すべての誤ったステートメントを無視して、JDBC executeBatchですべてのステートメントを実行するには?
2
A
答えて
1
同様の質問と回答については、BatchUpdateException: the batch will not terminateを参照してください。
バッチは、例外がスローされた瞬間に終了すると言います。あなたは良いものだけを実行することはできません。
2
もっと良い解決策は、間違ったものを修正することだと思います。どうしましたか? SQL?基礎となるテーブル?データ?
例外は「例外的」であると考えられます。どのような状況がよくあるので、このバッチでもっと頻繁に見られるでしょうか?
例外は何かが間違っていることを伝えています。私はあなたがメッセージを無視することを可能にする修正を推奨したくありません。スローされた例外がある場合は、catchブロックの根本的な問題を改善する機会があることを意味します。
バッチ内の各ステートメントをループする場合は、個々のステートメントから個別に例外をキャッチし、エラーをログに記録するだけです。完全に無視しないでください。
しかし、別の復旧戦略を考えることができない限り、あなたは不運です。
0
よく挿入することができたすべてのデータを保存する場合は、コミットを実行して保存してください。
バッチ内の各ステートメントをループすることはできません。実行バッチを呼び出す場合にのみ、各ステートメント(addbatch)ではなく例外が発生するため、エラーの場所を正確に見つけることはできませんそれらの一部を保存することも、何もしないこともできます(コミットまたはロールバック)。
関連する問題
- 1. ヌルレコードElseステートメントを誤ってトリガーする
- 2. すべてのステートメントを1つのifステートメントにグループ化するステートメント
- 3. jdbcバッチの不正なステートメントを無視します。
- 4. MyBatisはすべてのステートメントを実行した後にセッションを終了するのはなぜですか?
- 5. Railsが誤った `order`ステートメントを挿入しています
- 6. git pullを実行してすべての変更を無視する方法
- 7. JDBCを使用して実行中のステートメントのリストを取得する方法
- 8. PHP switchステートメント、すべての場合に改行なし
- 9. Python:if-elseステートメントにすべてのprintステートメントを表示する方法
- 10. SQL - すべての結合ステートメント?
- 11. Jquery nullを無視してステートメントを確認する
- 12. 私はネストされたifステートメントを持っていて、内部ステートメントはアウトターを無効にします
- 13. ifとelseステートメントを無視して、C++で書かれたプログラム
- 14. Pythonのすべてのprintステートメントにタブを追加する
- 15. Javascriptウィンドウサイズのステートメントを無視する
- 16. PHPは指定されたすべてのステートメントを実行していません
- 17. 別のテーブルの列のすべての行について1つのテーブルにハイブQLステートメントを実行
- 18. .gitignoreすべてのファイルを無視するネイティブファイルは無視します。
- 19. Ifステートメントのすべての条件は満たされていますが実行されません
- 20. 列内のすべての値を変更する更新ステートメント
- 21. データベーステーブルのすべてのデータを取得するABAPステートメント
- 22. MySqlテーブルのすべてのCREATEステートメントを取得するクエリ
- 23. 条件に基づいて1またはすべてを返すIIFステートメント
- 24. SQLステートメントは、SQLステートメントを実行し、GOステートメントなしで実行する方法はありますか?
- 25. TortoiseSVNはすべてのリビジョンを誤ってマージしたと報告します
- 26. Visual Studio C++ ifステートメントまたはifステートメント内の行を完全に無視します。 VS 2015
- 27. ifステートメントを無視するプログラム(MD5チェッカー)
- 28. 選択した新しいステートメントですべてのレコードを返すLinqクエリ
- 29. forループの先頭行からすべてのステートメントを削除します。
- 30. jdbcでINSERT INTO ALLステートメントを使用する方法豆を使用してステートメントを準備しました