Spring事务的四大特性
1.事务(Transaction)
事务一般是指数据库事务, 是基于关系型数据库(RDBMS)的企业应用的重要组成部分。在软件开发领域,事务扮演者十分重要的角色,用来确保应用程序数据的完整性和一致性。也就是要么完全执行,要么完全不执行。
事务允许我们将几个或一组操作组合成一个要么全部成功、要么全部失败的工作单元。如果事务中的所有操作都执行成功,那就是最终我们想要的正确的结果。但如果事务中的任何一个操作失败,那么事务中所有的操作都会被回滚,已经执行成功操作也会被完全还原,结果就跟操作之前一样。
很经典的例子就是银行转账操作, A转账给B500元, 如果A先转出去了500, 此时A的账户就少了500, 接下来就应该给B账户添加500元了, 但是很不巧此时程序出现了问题导致操作终止了, 这时候还没有给B账户加上500, 但是A却已经少了500元了, 这样就出现了问题. 所以就有了事务管理
事务管理的意义:保证数据操作的完整性。
而事务管理的四大特性就是ACID!
2.事务的ACID
事务的四个特性, 也就是ACID分别是: 原子性、一致性、隔离性 和 持久性
2.1.原子性(Atomicity)
事务的整个操作是一个整体,不可以分割,要么全部成功,要么全部失败。
例如: 上面的转账操作, A转出, B转入, 这虽然是两个操作, 但却应该是一个整体, 整体操作要么成功, 要么不成功(A也不会少那500元), 不能A转出了500, B却没有转入, 这就不是一个整体了.
2.2.一致性(Consistency)
事务必须保证数据库从一个一致性状态变到另一个一致性状态,一致性和原子性是密切相关的。
例如: 上面的转账操作, 账户A和B, 在操作之后, 应该要么都是转账前的状态(A没有转出500, B也没有收到500), 要么就都是转账后的状态(A转出了500, B转入了500), 不能A转出了500, B却没有转入500. 可以看出, 这里的一致性和原子性紧密结合的.
2.3.隔离性(Isolation)
一个事务的执行不能被其它事务干扰,即一个事务内部的操作及使用的数据对并发的其它事务是隔离的,并发执行的各个事务之间不能互相打扰。
例如: 上面的转账操作, 虽然A和B转账操作的那个时间段, 会有很多其他人也在转账(可能也会牵扯到A和B账户), 但是每个人的转账都是自己个事务中, 彼此之间不会影响
2.4.持久性(Durability)
持久性也称为永久性,指一个事务一旦提交,它对数据库中数据的改变就是永久性的,后面的其它操作和故障都不应该对其有任何影响。
例如: A和B的转账操作完成后(事务提交), 此时A就会少了这500, B也就多了500, 不会改变了(除非继续操作账户), 此时不管系统崩了还是银行断电, 账户里的钱都不会改变了
Spring事务的四大特性的更多相关文章
- 数据库事务的四大特性以及事务的隔离级别-与-Spring事务传播机制&隔离级别
数据库事务的四大特性以及事务的隔离级别 本篇讲诉数据库中事务的四大特性(ACID),并且将会详细地说明事务的隔离级别. 如果一个数据库声称支持事务的操作,那么该数据库必须要具备以下四个特性: ⑴ ...
- MySQL之事务的四大特性
事务就是一组原子性的SQL查询,或者说一个独立的工作单元.如果数据库引擎能够成功地对数据应用该组查询的全部语句,那么久执行该组查询.如果其中任何一条语句因为崩溃或其他原因无法执行,那么所有语句都不会执 ...
- 事务的四大特性(ACID):
事务的四大特性(ACID): 1.原子性(Atomicity): 事务中所有操作是不可再分割的原子单元.事务中所有操作要么都执行成功,要么都执行失败. 2.一致性(Consistency): 事 ...
- 数据库事务的四大特性以及事务的隔离级别(mysql)
本篇讲诉数据库中事务的四大特性(ACID),并且将会详细地说明事务的隔离级别. 如果一个数据库声称支持事务的操作,那么该数据库必须要具备以下四个特性: ⑴ 原子性(Atomicity) 原子性是指 ...
- 数据库中事务的四大特性(ACID)
本篇讲诉数据库中事务的四大特性(ACID),并且将会详细地说明事务的隔离级别. 如果一个数据库声称支持事务的操作,那么该数据库必须要具备以下四个特性: ⑴ 原子性(Atomicity) 原子性是指事务 ...
- 数据库事务的四大特性以及4种事务的隔离级别-以及对应的5种JDBC事务隔离级别
本篇讲诉数据库中事务的四大特性(ACID),并且将会详细地说明事务的隔离级别. 如果一个数据库声称支持事务的操作,那么该数据库必须要具备以下四个特性: ⑴ 原子性(Atomicity) 原子性是指事务 ...
- java面试题之----数据库事务的四大特性及隔离级别
本篇讲诉数据库中事务的四大特性(ACID),并且将会详细地说明事务的隔离级别. 如果一个数据库声称支持事务的操作,那么该数据库必须要具备以下四个特性: ⑴ 原子性(Atomicity) 原子性是指事务 ...
- 黑马day11 事务的四大特性
1.事务的四大特性:一个事务具有的最主要的特性.一个设计良好的数据库能够为我们保证这四大特性. 1.1原子性:原子性是指事务是一个不可切割的工作单位,事务中的操作要么都发生要么都不发生. 1.2一致性 ...
- 事务的四大特性ACID
ACID是指数据库事务的四大特性,是由Jim Gray在19世纪70年代后期提出的概念,1983年Andreas Reuter and Theo Härder创造了ACID这个缩略语用来描述这四大特性 ...
- DBMS事务的四大特性
数据库事务的四大特性分别是:原子性.一致性.隔离性和持久性. 特性 说明 实现 一致性 在一个事务执行之前和执行之后数据库都必须处于一致性状态.假如数据库的状态满足所有的完整性约束,也可以说数据库是一 ...
随机推荐
- Quartz.Net 官方教程 Tutorial 2/3(Listener 和 JobStore)
Listener 调度任务的监听,当前版本支持添加调度,触发器和任务的监听,其中触发器和任务的监听支持通过监听名称进行添加(Add*ListenerMatcher方法) 监听不能对外抛出异常,需要内部 ...
- 浅谈Python中的with,可能有你不知道的
Python中的with,没那么简单,虽然也不难 https://docs.python.org/zh-cn/3.9/reference/compound_stmts.html#the-with-st ...
- IDEA 2022 开启热部署
POM.XML <dependency> <groupId>org.springframework.boot</groupId> <artifactId> ...
- JAVA虚拟机03-常量池项中字面量和符号引用
转https://baijiahao.baidu.com/s?id=1682261792528500739&wfr=spider&for=pc 1 符号引用 符号引用以一组符号来描述所 ...
- Jest + React 单元测试最佳实践
我们是袋鼠云数栈 UED 团队,致力于打造优秀的一站式数据中台产品.我们始终保持工匠精神,探索前端道路,为社区积累并传播经验价值. 前言 单元测试是一种用于测试"单元"的软件测试方 ...
- metasploit2-practice
Metasploittable2打靶教程 本次靶机练习主要熟悉:高危端口利用:metasploit中search,show及各个模块使用. 一.环境准备 1.把靶场放在vmware打开,启用nat模式 ...
- 图论之最短路径 Floyd算法
/** 图论之最短路径 Floyd算法 */ #include<stdio.h> #include<string.h> #include<algorithm> #d ...
- 跳板攻击之:dns2tcp
跳板攻击之:dns2tcp 目录 跳板攻击之:dns2tcp 1 dns2tcp简介 2 dns2tcp 食用说明 2.1 dns2tcpd 服务端 2.1.1 服务端参数说明 2.1.2 配置文件 ...
- mssql 常用sql 语句
----insert ----delete----update----select ----选择数据库进行操作select top 1 * from smzx2018.dbo.tbuseruse sm ...
- Python批量绘制遥感影像数据的直方图
本文介绍基于Python中gdal模块,实现对大量栅格图像批量绘制直方图的方法. 首先,明确一下本文需要实现的需求:现需对多幅栅格数据文件进行依据其像元数值的直方图绘制,具体绘制内容即各栅格图 ...