一,利用數據庫事務實現應用事務控制,對數據庫操做有什麼要求?spring
須要使用同一個鏈接數據庫
二,能不能讓事務的全部操做都使用同一個數據庫鏈接?線程
單一數據源:能夠;多數據源:不能夠orm
三,單一數據源,如何讓事務的全部操做使用同一鏈接事務
鏈接是從dataSource中得到的,咱們改造一下dataSource,把獲得的鏈接放到線程上下文,下一個操做獲取鏈接時,從線程上下文獲取便可。it
四,多數據源的狀況下,還能了利用數據庫事務嗎?io
能,屬於一個數據源的操做放在一個局部事務中(數據庫事務),當應用事務(全局事務)失敗時,讓這些局部事務都回滾。成功則讓局部事務都提交。form
五,應用事務和數據庫事務是同一個嗎?方法
數據庫事務是數據庫控制多個數據庫操做的,應用事務是應用中控制多個應用操做(方法)的。應用事務借用數據庫事務,把它的操做結果還原。數據
六,Spring的7種事務傳播行爲類型
一、PROPAGATION_REQUIRED:若是當前沒有事務,就建立一個新事務,若是當前存在事務,就加入該事務,該設置是最經常使用的設置。
二、PROPAGATION_SUPPORTS:支持當前事務,若是當前存在事務,就加入該事務,若是當前不存在事務,就以非事務執行。‘
三、PROPAGATION_MANDATORY:支持當前事務,若是當前存在事務,就加入該事務,若是當前不存在事務,就拋出異常。
四、PROPAGATION_REQUIRES_NEW:建立新事務,不管當前存不存在事務,都建立新事務。
五、PROPAGATION_NOT_SUPPORTED:以非事務方式執行操做,若是當前存在事務,就把當前事務掛起。
六、PROPAGATION_NEVER:以非事務方式執行,若是當前存在事務,則拋出異常。
七、PROPAGATION_NESTED:若是當前存在事務,則在嵌套事務內執行。若是當前沒有事務,則執行與PROPAGATION_REQUIRED相似的操做。
七,事務由哪些部分組成?
1,構成事務的操做,或事務範圍
2,事務控制部分
八,spring事務建模:三個核心
》TransactionDefinition:事務定義
》PlatformTransactionManager:事務管理器
》TransactionStatus:事務的狀態表示