採用宣告式事務
1、宣告式事務配置
* 配置sessionfactory
* 配置事務管理器
* 事務的傳播特性
* 那些類那些方法使用事務
2、編寫業務邏輯方法
* 繼承hibernatedaosupport類,使用hibernatetemplate來持久化,hibernatetemplate是
hibernate session的輕量級封裝
* 預設情況下執行期異常才會回滾(包括繼承了runtimeexception子類),普通異常是不會滾的
* 編寫業務邏輯方法時,最好將異常一直向上丟擲,在表示層(struts)處理
* 關於事務邊界的設定,通常設定到業務層,不要新增到dao上
3、了解事務的幾種傳播特性
1. propagation_required: 如果存在乙個事務,則支援當前事務。如果沒有事務則開啟
2. propagation_supports: 如果存在乙個事務,支援當前事務。如果沒有事務,則非事務的執行
3. propagation_mandatory: 如果已經存在乙個事務,支援當前事務。如果沒有乙個活動的事務,則丟擲異常。
4. propagation_requires_new: 總是開啟乙個新的事務。如果乙個事務已經存在,則將這個存在的事務掛起。
5. propagation_not_supported: 總是非事務地執行,並掛起任何存在的事務。
6. propagation_never: 總是非事務地執行,如果存在乙個活動事務,則丟擲異常
7. propagation_nested:如果乙個活動的事務存在,則執行在乙個巢狀的事務中. 如果沒有活動事務,
則按transactiondefinition.propagation_required 屬性執行
4、spring事務的隔離級別
1. isolation_default: 這是乙個platfromtransactionmanager預設的隔離級別,使用資料庫預設的事務隔離級別.
另外四個與jdbc的隔離級別相對應
2. isolation_read_uncommitted: 這是事務最低的隔離級別,它充許令外乙個事務可以看到這個事務未提交的資料。
這種隔離級別會產生髒讀,不可重複讀和幻像讀。
3. isolation_read_committed: 保證乙個事務修改的資料提交後才能被另外乙個事務讀取。另外乙個事務不能讀取該事務未提交的資料
4. isolation_repeatable_read: 這種事務隔離級別可以防止髒讀,不可重複讀。但是可能出現幻像讀。
它除了保證乙個事務不能讀取另乙個事務未提交的資料外,還保證了避免下面的情況產生(不可重複讀)。
5. isolation_serializable 這是花費最高代價但是最可靠的事務隔離級別。事務被處理為順序執行。
除了防止髒讀,不可重複讀外,還避免了幻像讀。
採用宣告式事務
採用宣告式事務 1 宣告式事務配置 配置sessionfactory 配置事務管理器 事務的傳播特性 那些類那些方法使用事務 2 編寫業務邏輯方法 繼承hibernatedaosupport類,使用hibernatetemplate來持久化,hibernatetemplate是 hibernate ...
宣告式事務
宣告式事務編輯以方法為單位,進行事物控制 丟擲異常,事物回滾。最小的執行單位為方法。決定執行成敗是通過是否丟擲異常來判斷的,丟擲異常即執行失敗 宣告式事務 declarative transaction management 是spring提供的對程式事務管理的方式之一。spring的宣告式事務顧名...
宣告式事務
開啟事務,就需要在spring的配置檔案中配置事務管理器 id datasourcetransactionmanager class org.springframework.jdbc.datasource.datasourcetransactionmanager name datasource re...