は基本的に私は(例外処理などを無視して)持っている:Derby(JDBC)でトランザクションをコミットする前にトランザクション内の文を閉じることはできますか?
connection.setAutoCommit(false);
Statement statement1 = connection.createStatement();
statement1.executeUpdate("...");
statement1.close();
Statement statement2 = connection.createStatement();
statement2.executeUpdate("...");
statement2.close();
connection.commit();
私が正しく理解していれば、それは本当にありません、すべてがGCのためのリソースは無料ですので、それがどんな影響を与えるべきではありません。 Especially with Derby:不要になった文、結果セット、および接続を明示的に閉じる必要があります。 Derbyへの接続はアプリケーション外部のリソースであり、ガベージコレクタは自動的にそれらを閉じません。
ただし、トランザクションに問題はありますか?私は取引が本声明に依拠しているとは思わない。誰でもこれを確認できますか?
ステートメントを閉じると、_transaction_はDB側でまだ開いているようです(コミットまたはロールバックを待っています)。接続にコミットまたはロールバック・コマンドが出されたときにのみ終了/クローズされます。私は正しい? – ADTC