1. 程式人生 > >事務學習

事務學習

獲取 orm prop status 數據庫事務 action new 得到 管理

一,利用數據庫事務實現應用事務控制,對數據庫操作有什麽要求?

   需要使用同一個連接

二,能不能讓事務的所有操作都使用同一個數據庫連接?

  單一數據源:可以;多數據源:不可以

三,單一數據源,如何讓事務的所有操作使用同一連接

  連接是從dataSource中獲得的,我們改造一下dataSource,把得到的連接放到線程上下文,下一個操作獲取連接時,從線程上下文獲取即可。

四,多數據源的情況下,還能了利用數據庫事務嗎?

  能,屬於一個數據源的操作放在一個局部事務中(數據庫事務),當應用事務(全局事務)失敗時,讓這些局部事務都回滾。成功則讓局部事務都提交。

五,應用事務和數據庫事務是同一個嗎?

  數據庫事務是數據庫控制多個數據庫操作的,應用事務是應用中控制多個應用操作(方法)的。應用事務借用數據庫事務,把它的操作結果還原。

六,Spring的7種事務傳播行為類型

  1、PROPAGATION_REQUIRED:如果當前沒有事務,就創建一個新事務,如果當前存在事務,就加入該事務,該設置是最常用的設置。

  2、PROPAGATION_SUPPORTS:支持當前事務,如果當前存在事務,就加入該事務,如果當前不存在事務,就以非事務執行。‘

  3、PROPAGATION_MANDATORY:支持當前事務,如果當前存在事務,就加入該事務,如果當前不存在事務,就拋出異常。

  4、PROPAGATION_REQUIRES_NEW:創建新事務,無論當前存不存在事務,都創建新事務。

  5、PROPAGATION_NOT_SUPPORTED:以非事務方式執行操作,如果當前存在事務,就把當前事務掛起。

  6、PROPAGATION_NEVER:以非事務方式執行,如果當前存在事務,則拋出異常。

  7、PROPAGATION_NESTED:如果當前存在事務,則在嵌套事務內執行。如果當前沒有事務,則執行與PROPAGATION_REQUIRED類似的操作。

七,事務由哪些部分組成?

  1,構成事務的操作,或事務範圍

  2,事務控制部分

八,spring事務建模:三個核心

  》TransactionDefinition:事務定義

  》PlatformTransactionManager:事務管理器

  》TransactionStatus:事務的狀態表示

事務學習