<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[Heck's  Blog]]></title> 
<link>https://www.heckjj.com/index.php</link> 
<description><![CDATA[一瞬间的决定，往往可以改变很多，事实上，让自己成功的往往不是知识，是精神！ 如果你总是为自己找借口，那只好让成功推迟。执行力，今天！]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[Heck's  Blog]]></copyright>
<item>
<link>https://www.heckjj.com/post//</link>
<title><![CDATA[事务传播机制和隔离级别]]></title> 
<author>Heck &lt;@hecks.tk&gt;</author>
<category><![CDATA[编程杂谈]]></category>
<pubDate>Thu, 07 Apr 2022 09:37:43 +0000</pubDate> 
<guid>https://www.heckjj.com/post//</guid> 
<description>
<![CDATA[ 
	（一）事务传播机制 7种 <br/><br/>　　　　Required （默认）：<br/><br/>　　　　　　　　如果当前没有事务，就新建一个事务,如果已存在一个事务中<br/><br/>　　　　　　　　加入到这个事务中，这是最常见的选择。<br/><br/>　　　　Supports ：<br/><br/>　　　　　　　　支持当前事务，如果没有当前事务，就以非事务方法执行。<br/><br/>　　　　Mandatory : <br/><br/>　　　　　　　　中文翻译为强制，支持使用当前事务，如果当前事务不存在，则抛出Exception。<br/><br/>　　　　Requies_new : <br/><br/>　　　　　　　　创建一个新事务，如果当前事务存在，把当前事务挂起。<br/><br/>　　　　Not_Supported : <br/><br/>　　　　　　　　无事务执行，如果当前事务存在，把当前事务挂起。<br/><br/>　　　　Never :<br/><br/>　　　　　　　　 无事务执行，如果当前有事务则抛出Exception。<br/><br/>　　　　Nested : <br/><br/>　　　　　　　　嵌套事务，如果当前事务存在，那么在嵌套的事务中执行。<br/><br/>　　　　　　　　如果当前事务不存在，则表现跟REQUIRED一样。<br/><br/> <br/><br/>　　&nbsp;&nbsp;注解配置时如：@Transactional(propagation=Propagation.REQUIRED) <br/><br/>　　&nbsp;&nbsp;7种事务举例子可看此篇博客 感觉不错： https://www.cnblogs.com/myseries/p/10800430.html<br/><br/> （二）事务隔离级别<br/><br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 事务隔离级别&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 脏读&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;不可重复读&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;幻读<br/>读未提交(Read-Uncommitted)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;是&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;是&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;是<br/>不可重复读(Read-Committed)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;否&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 是&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;是<br/>可重复读(Repeatable-Read)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;否&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;否&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;是<br/>串行化(Serializable)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;否&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 否&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;否<br/>　　 注解配置时如：@Transactional(isolation = Isolation.READ_UNCOMMITTED)<br/><br/> 　　Mysql 默认 可重复读&nbsp;&nbsp; ---repeatable-read<br/><br/>　　事务的并发问题<br/><br/>　　　　1、脏读：事务A读取了事务B更新的数据，然后B回滚操作，那么A读取到的数据是脏数据<br/><br/>　　　　2、不可重复读：事务 A 多次读取同一数据，事务 B 在事务A多次读取的过程中，<br/><br/>　　　　　&nbsp;&nbsp;对数据作了更新并提交，导致事务A多次读取同一数据时，结果 不一致。<br/><br/>　　　　3、幻读：系统管理员A将数据库中所有学生的成绩从具体分数改为ABCDE等级，<br/><br/> 　　　　&nbsp;&nbsp;&nbsp;&nbsp; 但是系统管理员B就在这个时候插入了一条具体分数的记录，<br/><br/>　　　　　&nbsp;&nbsp; 当系统管理员A改结束后发现还有一条记录没有改过来，就好像发生了幻觉一样，这就叫幻读。<br/><br/>　　　　小结：不可重复读的和幻读很容易混淆，不可重复读侧重于修改，幻读侧重于新增或删除。<br/><br/>　　　　&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;解决不可重复读的问题只需锁住满足条件的行，解决幻读需要锁表<br/><br/> 
]]>
</description>
</item><item>
<link>https://www.heckjj.com/post//#blogcomment</link>
<title><![CDATA[[评论] 事务传播机制和隔离级别]]></title> 
<author> &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate> 
<guid>https://www.heckjj.com/post//#blogcomment</guid> 
<description>
<![CDATA[ 
	
]]>
</description>
</item>
</channel>
</rss>