理理“事务”(上)

来源:互联网 发布:对人工智能社会的畅想 编辑:程序博客网 时间:2024/06/05 19:28

1事务

1.1概念

计算机术语中是指访问并可能更新数据库中各种数据项的一个程序执行单元(unit

                      

以前的事务管理都在数据库上,现在相应的转移到了Java程序代码中。

事务由begin transationend transation组成。

事务是为解决数据安全操作提出的,事务控制实际上就是控制数据的安全访问。

1.2ACID特性

事务应该具有4个属性:原子性、一致性、隔离性、持久性。这四个属性通常称为ACID特性。

  • 原子性(atomicity)。一个事务是一个不可分割的工作单位,事务中包括的诸操作要么都做,要么都不做。
  • 一致性(consistency)。事务必须是使数据库从一个一致性状态变到另一个一致性状态。一致性与原子性是密切相关的。
  • 隔离性(isolation)。一个事务的执行不能被其他事务干扰。即一个事务内部的操作及使用的数据对并发的其他事务是隔离的,并发执行的各个事务之间不能互相干扰。
  • 持久性(durability)。持久性也称永久性(permanence),指一个事务一旦提交,它对数据库中数据的改变就应该是永久性的。接下来的其他操作或故障不应该对其有任何影响。

2 java事务类型

                                      

2.1本地事务

使用单一资源的事务称为本地事务(local transaction)。本地事务使用已知数据源,同时还是单阶段事务。

 

2.1.1JDBC事务

事务是用Connection管理的(2种模式,自动事务提交和手动事务提交),即事务管理实际上是在JDBC Connection中实现,事务周期限于Connection的生命周期之内。

JDBCConnection提供单个数据源的事务。

缺点:一个事务范围局限于一个数据库连接,不能跨越多个数据库。

java.sql.Connection提供了以下控制事务的方法:

public void setAutoCommit(boolean)public boolean getAutoCommit()public void commit()public void rollback()

接下一篇博客《理理“事务”(下)》

0 0