Q:

Postgresql transaction handling with java

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);
prep.executeUpdate();

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);
prep2.executeUpdate();

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

A:

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. 
http://docs.oracle.com/javase/tutorial/jdbc/basics/transactions.html
If you use EJB3 or Spring you can add a transaction manager and specify them declaratively.   That's more sophisticated and flexible. 

A:

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.