-
虛讀(幻讀)的定義查看全部
-
不可重復讀定義查看全部
-
臟讀定義查看全部
-
不考慮隔離性問題查看全部
-
事務隔離級別(四種)查看全部
-
隔離級別就是解決這幾種隔離問題的查看全部
-
PlatformTransactionManager接口的實現(xiàn) 什么情況,用什么實現(xiàn)類 常用的接口實現(xiàn)查看全部
-
Spring事務管理的常用接口 首先會根據(jù)TransactionDefinition事務定義的信息(比如定義了什么樣的隔離級別,定義什么樣的傳播行為),由PlatformTransactionManager對事務進行管理,進行事務管理的過程中,事務會產(chǎn)生一些相應的狀態(tài),這些狀態(tài)在TransactionStatus中。查看全部
-
事務指的是邏輯上的一組操作,這組操作要么全部成功,要么全部失敗 事務的 ACID 事務具有四個特征:原子性( Atomicity )、一致性( Consistency )、隔離性( Isolation )和持續(xù)性( Durability )。 1 、原子性 事務是數(shù)據(jù)庫的邏輯工作單位,事務中包含的各操作要么都做,要么都不做。 2 、一致性 事務執(zhí)行的結果必須是使數(shù)據(jù)庫從一個一致性狀態(tài)變到另一個一致性狀態(tài)。因此當數(shù)據(jù)庫只包含成功事務提交的結果時,就說數(shù)據(jù)庫處于一致性狀態(tài)。如果數(shù)據(jù)庫系統(tǒng)運行中發(fā)生故障,有些事務尚未完成就被迫中斷,這些未完成事務對數(shù)據(jù)庫所做的修改有一部分已寫入物理數(shù)據(jù)庫,這時數(shù)據(jù)庫就處于一種不正確的狀態(tài),或者說是不一致的狀態(tài)。(也就是李四和張三一共有4000塊,進行轉賬,無論怎么轉賬都是4000) 3 、隔離性 一個事務的執(zhí)行不能其它事務干擾。即一個事務內部的操作及使用的數(shù)據(jù)對其它并發(fā)事務是隔離的,并發(fā)執(zhí)行的各個事務之間不能互相干擾。 4 、持續(xù)性 也稱永久性,指一個事務一旦提交,它對數(shù)據(jù)庫中的數(shù)據(jù)的改變就應該是永久性的。接下來的其它操作或故障不應該對其執(zhí)行結果有任何影響。查看全部
-
Spring事務管理查看全部
-
//相關代碼(聲明式 III——基于注解的方式)——(上): @AccountServiceImpl.java package cn.muke.spring.demo4; /** * 轉賬案例的業(yè)務層實現(xiàn)類 */ /** * propagation :事務的傳播行為。 * isolation :事務的隔離級別,比如,Isolation.DEFAULT:數(shù)據(jù)庫默認級別。 * readonly :只讀(不可進行修改、插入、刪除操作,否則報錯)。 * rollback-for :發(fā)生哪些異?;貪L事務。 * no-rollback-for :發(fā)生哪些異常事務不回滾,繼續(xù)提交。 * timeout :過期信息。 */ @Transactional(isolation=Isolation.DEFAULT,propagation=Propagation.REQUIRED) public class AccountServiceImpl implements AccountService { // 注入轉賬的DAO的類 private AccountDao accountDao; public void setAccountDao(AccountDao accountDao) { this.accountDao = accountDao; } /** * @param out :轉出賬號 * @param in :轉入賬號 * @param money :轉賬金額 */ public void transfer(String out, String in, Double money) { accountDao.outMoney(out, money); int i=1/0;//這樣一來,上面可以成功執(zhí)行,下面就不會得到執(zhí)行 accountDao.inMoney(in, money); } }查看全部
-
聲明式事務管理方式二:基于AspectJ的xml方式的配置 <!-- 配置事務管理器 --> <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="dataSource"></property> </bean> <!-- 配置事務的通知:(事務的增強) --> <tx:advice id="txAdvice" transaction-manager="transactionManager"> <tx:attributes> <!-- propagation :傳播行為 isolation :隔離級別 read-only :只讀 rollback-for :發(fā)生哪些異常時回滾 no-rollback-for :發(fā)生哪些異常時不回滾 timeout :過期信息 --> <tx:method name="transfer" propagation="REQUIRED"/> </tx:attributes> </tx:advice> <!-- 配置aop切面 --> <aop:config> <!-- 配置切入點 --> <aop:pointcut expression="execution(* cn.muke.spring.demo3.AccountService+.*(..))" id="pointcut1"/> <!-- 配置切面 --> <aop:advisor advice-ref="txAdvice" pointcut-ref="pointcut1"/> </aop:config>查看全部
-
聲明式事務(代理) <!-- 配置事務管理 --> <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="dataSource"></property> </bean> <!-- 配置業(yè)務層的代理 --> <bean id="accountServiceProxy" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean"> <!-- 配置目標對象 --> <property name="target" ref="accountService"></property> <!-- 注入事務管理器 --> <property name="transactionManager" ref="transactionManager"/> <!-- 注入事務的屬性 --> <property name="transactionAttributes"> <props> <!-- * PROPAGATION :事務的傳播行為 * ISOLATION :事務的隔離級別 * readOnly :只讀(不允許進行修改,插入,刪除) * -Exception :發(fā)生哪些異常回滾事務 * +Exception :發(fā)生哪些異常事務不會滾。 --> <prop key="transfer">PROPAGATION_REQUIRED</prop> </props> </property> </bean>查看全部
-
主要事務查看全部
-
事務傳播行為查看全部
舉報
0/150
提交
取消