1つの関数でいくつかのテーブルを変更する必要があります。彼らはすべて成功しなければならない、またはすべて失敗する必要があります。 1つの操作が失敗した場合は、それらの操作がすべて失敗するようにします。私は以下を持っています:いつjava.sql.Connection.rollback()を呼び出す必要がありますか?
私はこのプロセス中に何か問題が起こった場合にrollback()を呼び出す必要があるのだろうかと思います。
その他の情報:接続プールを使用しています。上記のサンプルでは、最終的なステートメントも使用して各PreparedStatementを閉じるようにしています。簡潔にするために残しておきます。
あなたは
[OK]をそうでもアップデートして、そのCONNを反映する例がnullの場合も、更新Iロールバック()を呼び出す必要はありませんか?ありがとう – user291701
正しいです、あなたはロールバックを呼び出す必要はありません。前の例では、 'conn'が' try'の前に初期化されました。 –
これは単に真実ではありません。変更をロールバックするには、接続でロールバックを呼び出す必要があります。自動的にロールバックされることはありません。私の答えを参照してくださいが、コミットを呼び出す前に例外をスローすることによって自分自身でテストするのは簡単です。 –