发表于: 2018-03-01 19:59:54
0 668
今天完成的事情:
spring的事务,dubbo
明天准备做的事情:
面试
问题:
无
收获:
事务隔离级别介绍

未提交读(Read Uncommitted):允许脏读,也就是可能读取到其他会话中未提交事务修改的数据
提交读(Read Committed):只能读取到已经提交的数据。Oracle等多数数据库默认都是该级别 (不重复读)
可重复读(Repeated Read):可重复读。在同一个事务内的查询都是事务开始时刻一致的,InnoDB默认级别。在SQL标准中,该隔离级别消除了不可重复读,但是还存在幻象读,但是innoDB解决了幻读
串行读(Serializable):完全串行化的读,每次读都需要获得表级共享锁,读写相互都会阻塞
spring事务的七中传播方式
spring事务的七中传播方式主要是针对于方法中间传递时的事务机制,
例如:以方法B为当前主体 ,方法A调用了方法B ,作为方法B你看方法A
(1)PROPAGATION_REQUIRED(默认):如果A有事务则B加入A事务,如果A没有事务则新B建一个事务;
(2)PROPAGATION_NEW:B总是开启一个新的事务,如果A有事务则将A事务挂起先执行B事务;
(3)PROPAGATION_NESTED:RUGU :如果A没事务则新建一个事务,如果A有事务则把B的事务当成A的一个子事务(A事务rolback,commit影响B,B事务rolback,commit不影响A);
(4)PROPAGATION_SUPPORTS:如果A没事务,那就按普通方法执行,如果有A事务则用A的事务(B本身不具备事务);
(5))PROPAGATION_NOT_SUPPORTED:B总是非事务地执行,如果A有事务则把A事务挂起,自己还是以普通方法执行(B本身不具备事务);
(6)PROPAGATION_NEVER:如果A没事务,那就按普通方法执行,如果A有事务则抛出异常((B本身不具备事务);
(7)PROPAGATION_MANDATORY:如果A没事务就抛异常,如果A有事务则使用A的事务(B本身不具备事务);
评论