为确保安全,我是否需要编写所有数据库访问代码,如下所示:
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 {
}
}
在这个例子中,我只能访问一个表,我还需要将其视为事务吗?我是否需要将所有数据库访问权限写为此事务?
答案 0 :(得分:0)
这取决于是否有多个sql更新和插入。如果您正在执行单个更新或插入,它将隐式在事务中运行。
答案 1 :(得分:0)
在autoCommit中,数据库(或JDBC驱动程序)将启动并为单独执行的语句提交事务。 因此,如果这是唯一要执行的语句,那么您不需要将autoCommit设置为false,也不需要自己处理提交或回滚。
另一方面,如果你想执行多个应该原子提交或回滚的语句,那么你需要禁用自动提交。