-
TransactionStatus接口介绍
TransactionStatus接口:提供了获取事务状态的方法(例如:hasSavepoint()事务是否有保存点,isCompleted()事务是否已经完成,isNewTransaction()是否是新的事务)。
查看全部 -
TransactionDefinition 定义事务传播行为
事务传播行为共有 7 种
查看全部 -
TransaxtionDefinition 定义事务隔离级别
查看全部 -
Spring 接口介绍 之 Spring 事务管理
查看全部 -
Spring事务管理的课程目标:
我们会学习到如下内容:
1.事务的回顾,在事务的回顾里边,我们会回顾一下事务的基本的概念以及事务的一些相关的特性,
2.那么接下来我们会学习spring事务管理中的一组API,因为我们可以通过这组API来进行spring的事务管理
3.那么接下来我们就来学习spring中的编程式的事务管理,以及spring中的声明式的事务管理。
那么这就是我们这节课的一个目标。
那么我们在说完了这节课的课程目标之后呢我们接下来来说一下,我们的第一个内容,就是事务的知识点的回顾。
什么是事务?以及事务的特性?
事务指的是逻辑上的一组操作,这组操作呢,要么全部成功,要么全部 失败。那么我们在这里以一个银行转账的案例来分析,
那么我们假设有两个人,一个是张三,一个是李四,那么张三账户里有2千元,李四账户也有2千元,那现在张三要给李四进行转账1千元的操作,那么我们就会修改张三的账户,给张三的账户扣除掉1千元,然后我们要修改李四的账户,给李四的账户加1千元,那这样的话,我们就完成了一个转账的操作。但这组操作呢,它不应该出现的情况就是张三转了1千元之后,比如说突然间断电了,或者出现了一些其他的特殊情况,那么这样的话,张三的钱转出去了,而李四没收到,那这种情况是不应该出现的,所以说在这种情况里边,我们的一组操作我们可以用一组事务来进行管理,那么这组操作一旦加入到了事务的管理操作里边了,那么它们就必须一起成功,或者一起失败,那么一起 成功的情况是什么呢 就是张三把钱转出去了,李四也收到钱了,那如果是一起失败呢,那一起失败指的是张三的钱也没转出去,李四也没收到钱,这种情况不允许出现张三钱转了,李四没收到的情况。所以说这是事物的概念。它就是用来保证我们这组操作要么全都成功,要么全都失败,那么在事务当中呢,它是有一些相关的特性的,那事务一般都会有4大特性:这4大特性包含了原子性,一致性,隔离性,以及持久性,那什么是原子性呢,原子性指的是事务是一个不可分割的单位,事务中的操作要么都发生了,要么都不发生,那么我们都知道,物理中原子是最小的单位 ,那么它强调的是我们这一组单位是不能进行分割的,不能拿出来单独去运行的,因为单独运行的话,那都有可能会导致错误或者而失败的产生,那么我们要把这一组呢要放在一个事务里边,那么它们就能一起成功或者一起失败了。那什么是事务的一致性呢?那事务的一致性指的是,我们事务执行的前后,数据的完整性,要保持一致,也就是说我们在事务执行之前,张三里边有2千元,李四账户里也有2千元,那么总共是4千元,那当我们转账完成之后,那张三的账户里是1千元,而李四的账户里是3千元,那总共的金额也是4千元,所以说在执行的前后,我们的这种完整性,是一致的。它不能出现张三的钱被扣掉,李四没收到这种情况。那什么是隔离性呢?隔离性强调的是,多个用户并发访问数据库的时候,那么一个用户的事务的执行过程当中,不应该受到其他事务的干扰,比如说我们有两个事务在同时的操作数据库,那你这边比如说正在修改张三的记录,而又有一个记录进来修改张三这条记录,那最后修改完事之后呢,会导致你这个记录会被重复的修改,或者是一开始的事务改完的记录被第二个事务给覆盖掉了。那么我们的事务在执行的过程当中呢,尽量不要让它收到其他事务的干扰,那这怎么做到呢?那数据库里都有一个事务的隔离级别,我们可以通过设置隔离级别呢,来解决这种问题。还有一个就是事务的持久性,事物的持久性它指的是一个事务一旦被提交了,那它的记录就被真正的修改到我们的数据库里边了。如果你的事务没有提交,那你在执行了一个语句之后呢,这个数据还没有被真正的修改到数据库,或者是进入到数据库,那么只有你的事务提交了之后,这条记录才会被真正的修改或者进入到我们的数据库当中,那这个就是事务的持久性。通过以上的讲解,可以对事务有一个简单的认识。
查看全部 -
事务的特性之 持久性:查看全部
-
隔离性:
事务一在修改一个账户时,事务二无法对其进行修改,以避免两个事务发生重复修改或者导致修改记录被覆盖的问题
查看全部 -
事务的特性之 隔离性:查看全部
-
事务的特性之 一致性:
查看全部 -
事务的特性之 原子性查看全部
-
事务的特性: 四个
原子性、一致性、隔离性、持久性
查看全部 -
将转账的操作加入到一组事务之中进行管理,那么这一组转账的操作,要么一定成功,要么一定失败
一起成功: 张三将钱转出去了,而李四也收到了
一起失败: 张三钱没有转出去,李四也没有收到钱
查看全部 -
转账可能出现的异常问题查看全部
-
模拟案例: 银行转账
查看全部 -
什么是事务?查看全部
举报