java事务理解
还在学Hibernate,后续一大堆概念刚接触需要理解。觉得-——事务——这个概念不是很好理解,所以发上来记录一下。 首先说点千篇一律的东西。概念和特性都是随处可见的,无论哪里都很容易找到,关键是你如何去理解它。 概念:事务(Transaction)是访问并可能更新数据库中各种 数据项 的一个程序执行单元(unit)。事务通常由 高级数据库 操纵语言或编程语言(如SQL,C++或Java)书写的 用户程序 的执行所引起,并用形如begin transaction和end transaction语句(或 函数调用 )来界定。事务由事务开始(begin transaction)和事务结束(end transaction)之间执行的全体操作组成。 例如:在 关系数据库 中,一个事务可以是一条SQL语句,一组SQL语句或整个程序。 特性: 事务是恢复和 并发控制 的基本单位。 事务应该具有4个属性:原子性、一致性、隔离性、持久性。这四个属性通常称为ACID特性。 原子性(atomicity)。一个事务是一个不可分割的工作单位,事务中包括的诸操作要么都做,要么都不做。 一致性(consistency)。事务必须是使数据库从一个一致性状态变到另一个一致性状态。一致性与原子性是密切相关的。 隔离性(isolation)。一个事务的执行不能被其他事务干扰