我有两个带有prepareStatement的查询块。
这是第一:
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();
这是第二:
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();
现在我想用交易开始执行它们;和COMMIT;
我如何使用prepareStatement处理交易?
提前致谢。
最佳答案
将自动提交设置为false。
将您的PreparedStatements放在try块中。最后提交;在catch块中回滚。
这就是在裸露的JDBC中通常完成的方式。
http://docs.oracle.com/javase/tutorial/jdbc/basics/transactions.html
如果使用EJB3或Spring,则可以添加事务管理器并以声明方式指定它们。这更加复杂和灵活。