Spring事務管理

2021-08-20 07:16:59 字數 1539 閱讀 7902

原子性:事務是乙個不可分割的單位

隔離性:每個事務之間是相互隔離的

永續性:事務提交成功,對資料庫的改變是持久化的

一致性:事務中資料的狀態都是一致的,要麼成功,要麼失敗

這就是spring中的事務傳播特性保證事務的一致性

事務管理器介面通過gettransaction(transactiondefinition definition)方法根據指定的傳播行為返回當前活動的事務或建立乙個新的事務,這個方法裡面的引數是transactiondefinition類,這個類就定義了一些基本的事務屬性。

transactiondefinition中的傳播行為名稱值

解釋propagation_required

0支援當前事務,如果當前沒有事務,就新建乙個事務。這是最常見的選擇,也是spring預設的事務的傳播。

propagation_supports

1支援當前事務,如果當前沒有事務,就以非事務方式執行。

propagation_mandatory

2支援當前事務,如果當前沒有事務,就丟擲異常。

propagation_requires_new

3新建事務,如果當前存在事務,把當前事務掛起。

propagation_not_supported

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

propagation_never

5以非事務方式執行,如果當前存在事務,則丟擲異常。

propagation_nested

6如果當前存在事務,則在巢狀事務內執行。如果當前沒有事務,則進行與propagation_required類似的操作。

transactiondefinition中的隔離級別名稱值

解釋isolation_default

-1這是乙個platfromtransactionmanager預設的隔離級別,使用資料庫預設的事務隔離級別。另外四個與jdbc的隔離級別相對應

isolation_read_uncommitted

1這是事務最低的隔離級別,它充許另外乙個事務可以看到這個事務未提交的資料。這種隔離級別會產生髒讀,不可重複讀和幻讀。

isolation_read_committed

2保證乙個事務修改的資料提交後才能被另外乙個事務讀取。另外乙個事務不能讀取該事務未提交的資料。

isolation_repeatable_read

4這種事務隔離級別可以防止髒讀,不可重複讀。但是可能出現幻讀。

isolation_serializable

8這是花費最高代價但是最可靠的事務隔離級別。事務被處理為順序執行。除了防止髒讀,不可重複讀外,還避免了幻讀。

Spring事務管理

spring是ssh中的管理員,負責管理其它框架,協調各個部分的工作。今天一起學習一下spring的事務管理。spring的事務管理分為宣告式跟程式設計式。宣告式就是在spring的配置檔案中進行相關配置 程式設計式就是用註解的方式寫到 裡。下面先說宣告式 spring配置檔案中關於事務配置總是由三...

spring事務管理

一 xml配置事務 二 註解的方式配置事務 bean id txmanaager class org.springframework.orm.hibernate3.hibernatetransactionmanager property name sessionfactory ref session...

spring 事務管理

和資料庫打交道的碼農都知道事務,事務有4大特徵,分別是原子性,一致性,隔離性,永續性。而spring 對事物提供了良好的支援,和api,通過簡單的配置,則可以減低程式設計師重複的操作。1.原子性 原子性指的是乙個事務內的所有操作要麼全部應用到資料庫,要麼取消對資料庫的操作。2.一致性 一致性和原子性...