Postgresql transaction handling with java
我有两个使用preparedStatement的查询块。
这是第一个:
1 2 3 4 5 6 | 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(); |
这是第二个:
1 2 3 4 5 | 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(); |
现在我想用事务BEGIN执行它们; 和COMMIT;
如何使用preparedStatement处理事务?
提前致谢。
将自动提交设置为false。
将PreparedStatements放在try块中。 最后提交; 在catch块中回滚。
这就是它通常在裸机JDBC中完成的方式。
http://docs.oracle.com/javase/tutorial/jdbc/basics/transactions.html
如果使用EJB3或Spring,则可以添加事务管理器并以声明方式指定它们。 这更加复杂和灵活。
您应该使用
禁用自动提交时,首次执行需要事务的命令或查询时,将自动启动事务。
您不应该使用特定于数据库的事务控制命令(因为在发出commit()或rollback()时,驱动程序很可能会执行额外的资源清理。