原子性:事務是乙個不可分割的單位
隔離性:每個事務之間是相互隔離的
永續性:事務提交成功,對資料庫的改變是持久化的
一致性:事務中資料的狀態都是一致的,要麼成功,要麼失敗
這就是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.一致性 一致性和原子性...