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