事务基本概念

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/hbtj_1216/article/details/86669026

1. 什么是事务?

例子

理解事务之前,先讲一个日常生活中最常干的事:取钱

比如你去ATM机取1000块钱,大体有两个步骤:首先输入密码金额,银行卡扣掉1000元钱;然后ATM出1000元钱。

这两个步骤必须是要么都执行要么都不执行。如果银行卡扣除了1000块但是ATM出钱失败的话,你将会损失1000元;如果银行卡扣钱失败但是ATM却出了1000块,那么银行将损失1000元。

所以,如果一个步骤成功另一个步骤失败对双方都不是好事,如果不管哪一个步骤失败了以后,整个取钱过程都能回滚,也就是完全取消所有操作的话,这对双方都是极好的。

事务就是用来解决类似问题的。

定义

事务是一系列的动作,它们综合在一起才是一个完整的工作单元。这些动作要么都完成要么都不完成,如果有一个失败的话,那么事务就会回滚到最开始的状态,仿佛什么都没发生过一样。

在企业级应用程序开发中,事务管理是必不可少的技术,用来确保数据的完整性一致性

2. 事务的4个特性:ACID

事务满足4个特性,分别是原子性(Atomicity)一致性(Consistency)隔离性(Isolation)持久性(Durability)

详见:事务的ACID特性

3. 事务的5个属性

事务属性可以理解为事务的基本配置,这些属性描述了事务采取什么样的策略。

事务一共有5个属性:

  • 传播特性
  • 隔离级别
  • 是否只读
  • 事务超时
  • 回滚规则

详见:
[事务的传播特性]
[事务的隔离级别]
[是否只读、事务超时、回滚规则]

4. 3种事务模型

Java事务管理中,一共有3种事务模型:

  • 本地事务模型
  • 编程式事务模型
  • 声明式事务模型

详见:[3种事务模型]

猜你喜欢

转载自blog.csdn.net/hbtj_1216/article/details/86669026