首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我需要像这样把所有的数据库访问都写成事务吗?

问我需要像这样把所有的数据库访问都写成事务吗?
EN

Stack Overflow用户
提问于 2011-11-08 17:33:02
回答 2查看 43关注 0票数 1

为了保证安全性,我是否需要像这样编写所有的数据库访问代码:

​

代码语言:javascript
复制
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 {

        }

}

在这个例子中,我只有一个表的访问权,我还需要把它当作事务处理吗?我需要像这样把所有的数据库访问都写成事务吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-11-08 17:35:56

这取决于是否有多个sql更新和插入。如果您正在执行单个update或insert,它将隐式地在一个事务中运行。

票数 0
EN

Stack Overflow用户

发布于 2011-11-08 19:40:03

在autoCommit中,数据库(或JDBC驱动程序)将为单独执行的语句启动和提交事务。因此,如果这是唯一要执行的语句,则不需要将autoCommit设置为false,也不需要自己处理提交或回滚。

另一方面,如果您想要执行多个应该自动提交或回滚的语句,那么您确实需要禁用自动提交。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8048327

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档