我有两个带有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,则可以添加事务管理器并以声明方式指定它们。这更加复杂和灵活。

08-27 11:40