为了保证安全性,我是否需要像这样编写所有的数据库访问代码:
public void updateOrder(OrderData order) throw Exception {
....
coon.setAutoCommit(false);
Statement stmt = conn.createStatement();
String sql = "update order set .... where ";
try {
stmt.executeUpdate(sql);
conn.commit();
} catch (Exception e) {
conn.rollback();
} finally {
}}
在这个例子中,我只有一个表的访问权,我还需要把它当作事务处理吗?我需要像这样把所有的数据库访问都写成事务吗?
发布于 2011-11-08 17:35:56
这取决于是否有多个sql更新和插入。如果您正在执行单个update或insert,它将隐式地在一个事务中运行。
发布于 2011-11-08 19:40:03
在autoCommit中,数据库(或JDBC驱动程序)将为单独执行的语句启动和提交事务。因此,如果这是唯一要执行的语句,则不需要将autoCommit设置为false,也不需要自己处理提交或回滚。
另一方面,如果您想要执行多个应该自动提交或回滚的语句,那么您确实需要禁用自动提交。
https://stackoverflow.com/questions/8048327
复制相似问题