false に設定されclose()
ている場合でも、ドライバーはデフォルトでコミットしますか?conn.setAutoCommit()
挿入クエリを確認しましたが、そうです。私が間違っている場合はお知らせください。
が閉じられるConnection
と、現在のトランザクションをロールバックまたはコミットする必要があります。IIRC、JDBC 仕様では、動作が一貫している限り、実装でどちらかを選択できます (常にコミットするか、閉じるときに常にロールバックします)。はい、その動作は許可されているため、正しいです。
それが最良の選択である場合は、議論の余地があります。クローズ時にコミットすると、情報が失われないことを確認できますが、一方、明示的にコミットしなかったため、情報を永続化したくなかった可能性があります。
を使用する場合は、接続を閉じる前にautocommit=false
明示的に実行してください。rollback
このようにして、明示的にコミットされない限り、すべての更新が元に戻されます。