11

COMMIT一部のプログラマーがトランザクションを終了またはロールバックするために他の使用を使用していることに気付きconn.setAutoCommit(true);ましたが、他の使用の代わりに使用する利点は何ですか?

主な違いはどこですか?

conn.setAutoCommit(true);

以上

statement.executeQuery(query);
statement.commit();
4

2 に答える 2

4

の使用法はconn.setAutoCommit();接続に適用され、単一のトランザクションでXクエリを実行するか、1つのトランザクションごとに1つのトランザクションを使用する可能性があります。execute

APIが説明するように:

 void setAutoCommit(boolean autoCommit)
                    throws SQLException

この接続の自動コミットモードを指定された状態に設定します。接続が自動コミットモードの場合、そのすべてのSQLステートメントが実行され、個別のトランザクションとしてコミットされます。それ以外の場合、そのSQLステートメントは、メソッドcommitまたはメソッドロールバックのいずれかの呼び出しによって終了するトランザクションにグループ化されます。デフォルトでは、新しい接続は自動コミットモードです

単純なケースの場合:

conn.setAutoCommit(false); 
statement.executeQuery(query); 
statement.commit();

と同じになります:

conn.setAutoCommit(true); 
statement.executeQuery(query);
于 2012-05-04T23:31:14.790 に答える