PreparedStatementバッチとStatementバッチを混在させて、両方を単一のトランザクションで実行することは可能ですか?PreparedStatementバッチとStatementバッチを混在させることは可能ですか?
私が持っているのは、トランザクションを表す自分のデータアクセスオブジェクトです。 StatementまたはPreparedStatementsのを(複数のPreparedStatementがあるかもしれません)を使用する方法があるMyTableTransactionObjectの「ボンネットの下に」
/* here transaction starts: object receive connection, etc. */
MyTableTransactionObject myTable = new MyTableTransactionObject();
myTable.clear();
myTable.insert(Row1);
myTable.insert(Row2);
myTable.insert(Row3);
myTable.doSomethingElse();
myTable.insert(Row4);
/* here transaction ends, batches are executed changes are commited,
statements are closed */
myTable.execute();
myTable.close();
:私はこのようにそれを使用したいと思います。
など、clear()
方法で、私は
doSomethingElse(...)
に、私は何か他のもののために別のPreparedStatementを使用したい、
insert(...)
方法で、私はSQL
INSERT
操作を実行するために特別なPreparedStatementを使用したい、
statement.addBatch("DELETE FROM table;")
を使用したいどのように実行を実現することができます。たとえば、彼らは
myTable.execute()
で呼ばれたのですか?
MySQLを使用している場合は、ドライバレベルでrewriteBatchedStatementsを有効にしてください:http://dev.mysql.com/doc/refman/5.5/en /connector-j-reference-configuration-properties.html –