事務學習

一,利用數據庫事務實現應用事務控制,對數據庫操做有什麼要求?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:事務的狀態表示

相關文章
相關標籤/搜索