Hibernate 数据库事务与隔离级别

数据库事务:事务是指一组相互依赖的操作行为,如银行交易、股票交易或网上购物。事务的成功取决于这些相互依赖的操作行为是否都能执行成功,只要有一个操作行为失败,就意味着整个事务失败。关于事务的一个经典例子就是:A到银行办理转账事务,把100元钱转到B的账号上,美国空间,这个事务包含以下操作行为:

(1)从A的账户上减去100元。

(2)往B的账户上增加100元。

显然,香港服务器,网站空间,以上两个操作必须作为一个不可分割的工作单元。假如仅仅第一步操作执行成功,使得Tom的账户上扣除了100元,但是第二步操作执行失败,Jack的账户上没有增加100元,那么整个事务失败。数据库事务是对现实生活中事务的模拟,它由一组在业务逻辑上相互依赖的SQL语句组成。

下面我们一起来看一下数据库事务的生命周期:

这个数据库事务的生命周期图反应出数据库事务的三个边界:

1.事务的开始边界。

2.事务的正常结束边界(COMMIT):提交事务,永久保存被事务更新后的数据库状态。

3.事务的异常结束边界(ROLLBACK):撤销事务,使数据库退回到执行事务前的初始状态。

其实每个数据库连接都有个全局变量@@autocommit,表示当前的事务模式,它有两个可选值:0:表示手工提交模式。1:默认值,表示自动提交模式。

在自动提交模式下,每个SQL语句都是一个独立的事务。也就是说,每执行一条sql语句,数据库都会自动提交这个事务,当我们用数据库另一个客户端去查询的时候,我们可以看到这个新修改或插入的数据。在手工提交模式下,必须显式指定事务开始边界和结束边界:

–事务的开始边界:begin

–提交事务:commit

–撤销事务:rollback

下面我们来看一下通过JDBCAPI是如何声明事务边界的:

Connection提供了以下用于控制事务的方法:

1.setAutoCommit(booleanautoCommit):设置是否自动提交事务

2.commit():提交事务

3.rollback():撤销事务

下面我们看一下具体的应用示例:

[java]

怎么能研究出炸药呢?爱迪生不经历上千次的来自失败,怎么能发明电灯呢?

Hibernate 数据库事务与隔离级别

相关文章:

你感兴趣的文章:

标签云: