0

false に設定されclose()ている場合でも、ドライバーはデフォルトでコミットしますか?conn.setAutoCommit()

挿入クエリを確認しましたが、そうです。私が間違っている場合はお知らせください。

4

2 に答える 2

2

が閉じられるConnectionと、現在のトランザクションをロールバックまたはコミットする必要があります。IIRC、JDBC 仕様では、動作が一貫している限り、実装でどちらかを選択できます (常にコミットするか、閉じるときに常にロールバックします)。はい、その動作は許可されているため、正しいです。

それが最良の選択である場合は、議論の余地があります。クローズ時にコミットすると、情報が失われないことを確認できますが、一方、明示的にコミットしなかったため、情報を永続化したくなかった可能性があります。

于 2013-08-16T07:23:15.093 に答える
1

を使用する場合は、接続を閉じる前にautocommit=false明示的に実行してください。rollbackこのようにして、明示的にコミットされない限り、すべての更新が元に戻されます。

于 2016-11-18T11:33:42.770 に答える