当前位置: 首页 > news >正文

做a 免费网站原墨网站建设

做a 免费网站,原墨网站建设,seo快速排名外包,计算机网站建设与推广一、事务的ACID特性 原子性(Atomicity) 原子性是指事务是一个不可分割的工作单位,事务中的操作要么都发生,要么都不发生。一致性(Consistency) 事务前后数据的完整性必须保持一致。隔离性(Isola…

一、事务的ACID特性

原子性(Atomicity)
原子性是指事务是一个不可分割的工作单位,事务中的操作要么都发生,要么都不发生。
一致性(Consistency)
事务前后数据的完整性必须保持一致。
隔离性(Isolation)
事务的隔离性是多个用户并发访问数据库时,数据库为每一个用户开启的事务,不能被其他事务的操作数据所干扰,多个并发事务之间要相互隔离。
持久性(Durability)
持久性是指一个事务一旦被提交,它对数据库中数据的改变就是永久性的,接下来即使数据库发生故障也不应该对其有任何影响。

二、事务可能存在的问题

1、脏读

读到其他事务未提交的数据或已回滚的脏数据。

2、不可重复读

事务A读取一条数据,然后执行业务逻辑的时候事务B将这条数据修改了,导致A再次读取这条数据时发现数据不匹配了。

3、幻读
事务A根据条件索引得到N条数据,然后事务B改变了这N条数据之外的M条数据或增加了M条数据使得符合事务A的检索条件,导致事务A再次检索时发现了N+M条数据,产生了幻觉一样。

三、MySQL的事务隔离级别

1、READ_UNCOMMITTED  读未提交

也叫未提交读,该隔离级别的事务可以看到其他事务中未提交的数据。该隔离级别因为可以读取到其他事务中未提交的数据,而未提交的数据可能会发生回滚,因此我们把该级别读取到的数据称之为脏数据,把这个问题称之为脏读;
2、READ_COMMITTED  读已提交

也叫提交读,该隔离级别的事务能读取到已经提交事务的数据,因此它不会有脏读问题。但由于在事务的执行中可以读取到其他事务提交的结果,所以在不同时间的相同 SQL 查询中,可能会得到不同的结果,这种现象叫做不可重复读;
3、REPEATABLE_READ  可重复读 (mysql默认隔离级别)

它能确保同一事务多次查询的结果一致。但也会有新的问题,比如此级别的事务正在执行时,另一个事务成功的插入了某条数据,但因为它每次查询的结果都是一样的,所以会导致查询不到这条数据,自己重复插入时又失败(因为唯一约束的原因)。明明在事务中查询不到这条信息,但自己就是插入不进去,这就叫幻读 (Phantom Read);
4、SERIALIZABLE  串行化

最高的事务隔离级别,它会强制事务排序,使之不会发生冲突,从而解决了脏读、不可重复读和幻读问题,但因为执行效率低,所以真正使用的场景并不多
 

四、spring事务的隔离级别

spring的的事务隔离级别与mysql一致,多了一个默认隔离级别:

DEFAULT:Spring 中默认的事务隔离级别 ,以连接的数据库的事务隔离级别为准。

当mysql和spring都配置了事务的隔离级别时,以spring配置为准。

五、spring事务的传播机制

传播行为描述方法B定义的事务类型A方法有事务A方法无事务
REQUIRED默认的传播特性,如果当前没有事务则新建一个事务;如果当前存在事务则加入当前事务。@Transactional(propagation = Propagation.REQUIRED) AB合成一个事务B新建事务
SUPPORTS当前存在事务则加当前事务,当前没有事务则以非事务方式执行。@Transactional(propagation = Propagation.SUPPORTS)B加入到A的事务中B无事务
MANDATORY当前存在事务则加入当前事务,如果当前没有事务则抛出异常。@Transactional(propagation = Propagation.MANDATORY)B加入到A的事务中B抛异常
REQUIRES_NEW创建一个新事务,如果当前有事务则挂起当前事务。@Transactional(propagation = Propagation.REQUIRES_NEW)B新建一个自己的事务,与A隔离B新建事务
NOT_SUPPORTS以非事务方式执行,如果当前存在事务则挂起事务。@Transactional(propagation = Propagation.NOT_SUPPORTS)挂起A事务,B以无事务方式执行B无事务
NEVER不使用事务,如果当前有事务则抛出异常。@Transactional(propagation = Propagation.NEVER)B抛异常B无事务
NESTED如果当前有事务则嵌套在当前事务中执行,否则新建一个事务。@Transactional(propagation = Propagation.NESTED)B新建一个A的子事务,受A影响但不影响AB新建事务

六、spring事务的失效场景

1、bean对象没有被spring容器管理

2、方法的访问修饰符不是public

3、数据库不支持事务

4、数据源没有配置事务管理器

5、同类中无事务方法调用有事务方法

6、异常被捕获

7、异常类型错误或配置错误(传播类型不支持事务)

http://www.yayakq.cn/news/806388/

相关文章:

  • 购买天猫店铺网站深圳做微商网站制作
  • 为传销做网站铜川矿业公司网站
  • 密山网站金蝶软件怎么打印凭证
  • 广州网站建设公司有哪些网络营销策划师
  • 建设个人网页登陆网站天津做胎儿鉴定网站
  • thinkphp微网站开发wordpress 知识 管理系统
  • 常州微信网站建设咨询北京网站建设问问q778925409霸屏
  • 佛山外贸网站建设渠道优势的seo网站优化排名
  • 建立网站需要多少钱多少钱28湖南岚鸿wordpress仿搞笑
  • 厦门成交型网站建设公司广州网络营销产品代理
  • 如何仿造一个网站做专业的网站建站公司
  • 顺义区网站建设wordpress修改文章默认排序
  • 网站公司建设石家庄建设银行营业网点
  • 一个主机可以做几个网站安徽津城建设工程有限公司网站
  • 手机模板网站生成制作软件怎么搭建个人网站电脑做服务器
  • 怎么做网站xml地图动态电商网站怎么做
  • 深圳三站合一网站建设建筑公司网站设计模板
  • 网站建设读书笔记温州 网站 公司
  • 学校加强网站建设买微单的网站建设
  • 广州网站注销备案公司网络推广怎么做
  • nas 可以做网站吗商标怎么设计才好看
  • 网站模板代码怎么写免费网站域名cn
  • 广告宣传页怎么制作公司搜索seo
  • 陕西交通建设集团西商分公司网站微信api接口
  • 建筑工程类网站齐齐哈尔做网站公司
  • 营销型网站的价格东莞常平牙科
  • 毕业设计网站建设英文文献微信开发人是谁
  • 湖北北京网站建设好的学习网站打广告
  • 行业门户网站模板下载自己做电影网站需要的成本
  • 深圳网站建设易通鼎能联系做仿瓷的网站