浅析Spring 事务(十九) 简介事务

经过前面十八个章节的浅析,我们已经初步了解了Spring框架的左膀右臂IoC和AOP,今天我们开始一起分析一下Spring的事务~



首先,今天算是开篇介绍~先说一下,什么是事务,事务是数据库的比较特有的属性,这也是数据库区别于文件系统的区别(HDFS貌似没有事务吧),也就是文件系统与数据库系统最大的不同吧,事务就是将数据库从一个一致性状态成功的转化成另一个一致性状态,说白了就是我们在操作数据库的一段业务逻辑中,要么全部成功提交,要么就全部失败,这就是事务的定义


数据库事务的四大特性


数据库的隔离级别:

(这边不做隔离级别的分析,可以参考一下http://blog.csdn.net/linuu/article/details/50790858)


说到这里,有些人觉得不对,因为大家觉得还有一个叫做Spring事务传播,如果配置REQUIRED+NOT_SUPPORT这样的传播属性的时候,的确可以部分提交成功,部分提交失败,其实这并不矛盾,因为Spring的事务传播只是定义了一个事务的原子性(一个事务管理的范围),并没有违反事务一致性的特性,事务只是保证在一个原子阶段(该阶段就是一个整体,无法再切割,无法再分)在这个基础上事务保证一致性


抛开Spring,数据库应该说是没有事务传播的说法的~


并不是所有的数据库都是支持ACID这四个特性的,举例来说 Mysql数据库 不同的存储引擎对数据库的事务支持都是不一样的,目前最流行的INNODB存储引擎就是支持事务的,而过去流行的存储引擎Myisam就是不支持的


MYSQL INNODB事务的实现原理:

事务是依靠redo日志和undo日志.redo日志,看其名字就知道表示“即将要做”的事,这个用来保证事务的原子性和一致性,undo日志是用来记录数据原有的状态的日志,用来回滚的














  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值