Take the 2-minute tour ×

i have two blocks of queries with preparedStatement.

This is first :

String sql = "update cikan_malzeme set miktar = ? where proje_id = ? and malzeme_id = ?";
PreparedStatement prep = dbConnect.connection.prepareStatement(sql);
prep.setFloat(1, toplam);
prep.setInt(2, pid);
prep.setInt(3, mid);

And this is second :

String sql2 = "update malzemeler set miktar = ? where malz_adi = ?";
PreparedStatement prep2 = dbConnect.connection.prepareStatement(sql2);
prep2.setFloat(1, fark);
prep2.setString(2, malzemeadi);

now i want to execute them with the transaction BEGIN; and COMMIT; How can i handle transaction with preparedStatement ?

Thanks in advance.

share|improve this question
add comment

2 Answers

up vote 2 down vote accepted

Set auto commit to false.

Put your PreparedStatements in a try block. Commit at the end; rollback in the catch block.

That's how it's usually done in bare bones JDBC.


If you use EJB3 or Spring you can add a transaction manager and specify them declaratively. That's more sophisticated and flexible.

share|improve this answer
add comment

You should use Connection.setAutoCommit(false) to disable auto-commit and Connection.commit() and Connection.rollback().

When auto-commit is disabled, a transaction will be started automatically the first time you execute a command or query that requires a transaction.

You should not be using the database specific transaction control commands (as the driver will most likely do additional cleanup of resources when a commit() or rollback() is issued.

share|improve this answer
add comment

Your Answer


