Spring 事務管理

2022-09-23 13:36:13 字數 1081 閱讀 6491

資料庫事務是由一系列的動作組成的,這些動作被當作單獨的乙個工作單位。這些動作要麼被全部完整執行,要麼全部不被執行。事務管理是關係資料中乙個重要的部分,

企業級應用使用事務來保證資料的完整性和一致性,可以使用以下四個屬性來描述事務

1 原子性

乙個事務應該被當作乙個單獨的操作單位被執行,也就是說這一連串的操作被執行成功或者不成功。

2 一致性

這個代表資料庫參照完整性的一致性,表中存在唯一主鍵

3 隔離性

在同乙個時刻可能會有多個事務的程序操作同乙個資料集,每乙個事務應該同其他的事務隔離,防止資料被篡改

4 永續性

一旦事務被執行成功,事務的結果需要被持久化,並且不能因為系統錯誤導致資料丟失

乙個真正的關係型資料庫管理系統會為每乙個會話保證上面四個特性,可以通過以下sql實現

開始乙個會話通過使用 begin transaction 命令

通過批量執行多個 delete, update,insert 操作

如果所有的操作被執行,則執行commit操作,否則執行rollback操作。

spring 框架在事務管理的api之上提供了乙個抽象層,spring的事務支援的目的在於通過新增事務的能力到pojo來提供乙個可選的ejb事務。

spring 提供程式設計式事務和宣告式兩種事務管理,ejb需要乙個應用伺服器,但是spring事務管理能夠被實現而不需要應用伺服器。  

本地事務 和 分布式事務

本地事務特定於單個事務型資源,例如jdbc連線,而分布式事務能夠在分布式系統中跨多個事務性資源

程式設計式事務 和 宣告式事務

程式設計式事務管理: 通過程式設計的方式來管理事務,這種提供了極度的靈活性,但是很難去維護。

宣告式事務管理: 你需要從業務**中分離事務管理,你只能通過annotations 或者 基於xml的配置來管理事務。

事務隔離級別:

committed: 髒讀能夠被阻止,不可重複讀和幻讀會發生

uncommitted: 髒讀,不可重複讀,和幻讀會發生

repeatable_read 髒讀和不可重複讀能被阻止,幻讀會發生

serializable 髒讀,不可重複讀,幻讀被阻止  

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.一致性 一致性和原子性...