事务的基本的概念以及事务的一些相关的特性,

2.学习spring事务管理中的一组API,因为我们可以通过这组API来进行spring的事务管理

3.学习spring中的编程式的事务管理,以及spring中的声明式的事务管理。

什么是事务?以及事务的特性?

事务指的是逻辑上的一组操作,这组操作呢,要么全部成功,要么全部 失败。那么我们在这里以一个银行转账的案例来分析,

那么我们假设有两个人,一个是张三,一个是李四,那么张三账户里有2千元,李四账户也有2千元,那现在张三要给李四进行转账1千元的操作,那么我们就会修改张三的账户,给张三的账户扣除掉1千元,然后我们要修改李四的账户,给李四的账户加1千元,那这样的话,我们就完成了一个转账的操作。但这组操作呢,它不应该出现的情况就是张三转了1千元之后,比如说突然间断电了,或者出现了一些其他的特殊情况,那么这样的话,张三的钱转出去了,而李四没收到,那这种情况是不应该出现的,所以说在这种情况里边,我们的一组操作我们可以用一组事务来进行管理,那么这组操作一旦加入到了事务的管理操作里边了,那么它们就必须一起成功,或者一起失败,那么一起 成功的情况是什么呢 就是张三把钱转出去了,李四也收到钱了,那如果是一起失败呢,那一起失败指的是张三的钱也没转出去,李四也没收到钱,这种情况不允许出现张三钱转了,李四没收到的情况。所以说这是事物的概念。它就是用来保证我们这组操作要么全都成功,要么全都失败,那么在事务当中呢,它是有一些相关的特性的,那事务一般都会有4大特性:这4大特性包含了原子性,一致性,隔离性,以及持久性,那什么是原子性呢,原子性指的是事务是一个不可分割的单位,事务中的操作**要么都发生了,要么都不发生,**那么我们都知道,物理中原子是最小的单位 ,那么它强调的是我们这一组单位是不能进行分割的,不能拿出来单独去运行的,因为单独运行的话,那都有可能会导致错误或者而失败的产生,那么我们要把这一组呢要放在一个事务里边,那么它们就能一起成功或者一起失败了。那什么是事务的一致性呢?那事务的一致性指的是,我们事务执行的前后,数据的完整性,要保持一致,也就是说我们在事务执行之前,张三里边有2千元,李四账户里也有2千元,那么总共是4千元,那当我们转账完成之后,那张三的账户里是1千元,而李四的账户里是3千元,那总共的金额也是4千元,所以说在执行的前后,我们的这种完整性,是一致的。它不能出现张三的钱被扣掉,李四没收到这种情况。那什么是隔离性呢?**隔离性强调的是,多个用户并发访问数据库的时候,那么一个用户的事务的执行过程当中,不应该受到其他事务的干扰,比如说我们有两个事务在同时的操作数据库,那你这边比如说正在修改张三的记录,而又有一个记录进来修改张三这条记录,那最后修改完事之后呢,会导致你这个记录会被重复的修改,或者是一开始的事务改完的记录被第二个事务给覆盖掉了。那么我们的事务在执行的过程当中呢,尽量不要让它收到其他事务的干扰,那这怎么做到呢?那数据库里都有一个事务的隔离级别,我们可以通过设置隔离级别呢,来解决这种问题。**还有一个就是事务的持久性,事物的持久性它指的是一个事务一旦被提交了,那它的记录就被真正的修改到我们的数据库里边了。如果你的事务没有提交,那你在执行了一个语句之后呢,这个数据还没有被真正的修改到数据库,或者是进入到数据库,那么只有你的事务提交了之后,这条记录才会被真正的修改或者进入到我们的数据库当中,那这个就是事务的持久性。通过以上的讲解,可以对事务有一个简单的认识。

06-29 06:52