加入收藏 | 设为首页 | 会员中心 | 我要投稿 核心网 (https://www.hxwgxz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程 > 正文

spring事务及声明式事务的运用方法

发布时间:2022-03-12 05:51:28 所属栏目:编程 来源:互联网
导读:这篇文章主要介绍spring事务及声明式事务的使用方法,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完! 本篇文章给大家带来的内容是关于如何理解spring事务及声明式事务的使用,包括数据库中的事物隔离级别,有一定的参考价值,有需要
      这篇文章主要介绍spring事务及声明式事务的使用方法,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!
 
     本篇文章给大家带来的内容是关于如何理解spring事务及声明式事务的使用,包括数据库中的事物隔离级别,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。
 
     spring事务及声明式事务的使用
   (同学们,开始复习大学还给老师的数据库知识啦!!)
 
     事务:访问并可能更新数据库中各种数据项的一个程序执行单元(unit)。
 
事务有四个属性:(ACID)
 
原子性:一个事务是一个不可分割的工作单元,事务中包括的诸操作要么都做,要么都不做。
 
一致性;事务必须是使数据库从一个一致性状态变到另一个一致性状态。一致性与原子性使密切相关的。
 
隔离性:一个事务的执行不能被其他事物干扰。即一个事务内部操作及使用的数据对并发的其他事物是隔离的,并发执行的各个事务之间不能相互干扰。
 
持久性:持久性也称永久性,指一个事务一旦提交,它对数据库中数据的改变就应该永久的。
 
数据库中的事物隔离级别
在了解事务隔离级别之前,先来了解一下数据中经常发生的可能导致业务逻辑失败的几种情况。
 
脏读
当一个事务正在访问数据,并且对数据进行了修改,并且还没有提交到数据库中;这时另一事务也访问了这个数据,然后使用了这个数据。
 
例如:张三的银行账户现在有1000,现在张三存入了200,那么在张三点击提交的时候,他媳妇(辛苦的张三在给媳妇存零花钱)在商场购物花了500。张三查看余额发现只有500了(张三懵逼了。。)。然后两人为了200吵了起来。以上就是胀读引起一场家庭大战。
 
不可重复读
不可重复读:一个事务内,多次读同一个数据。在这个事务还没有结束时,另一个事务也访问了该数据。在第一个事务的两次读数据间,由于第二个事务的修改,第一事务两次读到的数据可能不一样。这样就发生了一个事务内两次读到的数据是不一样的。(即不能读到相同的数据)
 
幻读
一个事务对一个表中的数据进行了修改,这种修改涉及到表中的全部数据行,与此同时第二个事务向表中插入一行新数据。就会发生操作第一个事务的用户发现表中还有没有修改的数据行。就好像发生了幻觉一样。
 
spring的五种隔离级别
ISOLATION_DEFAULT
表示底层数据库的默认隔离级别,对大部分数据库而言通常值是:ISOLATION _READ _COMMITTED
 
ISOLATION _SERIALIZBLE
所有事务依次逐个执行,这样事务之间就完全不可能产生干扰。可以防止脏读,不可重复读,幻读。
 
事务的传播性(spring提供了七个)
是指事务之间的关系,例如一个事务中含有另一个事务,那么传播性用来确定相互的执行。

(编辑:核心网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读