spring事務管理(暫定)

2021-09-05 09:38:36 字數 1441 閱讀 5898

spring事務管理

事務有四大特性(acid)

1.原子性(atomicity)事務是乙個原子操作,由一系列動作組成。事務的原子性確保動作要麼全部完成,要麼完全不起作用。

2.一致性(consistency)事務在完成時,必須是所有的資料都保持一致狀態。

3.隔離性(isolation)併發事務執行之間無影響,在乙個事務內部的操作對其他事務是不產生影響,這需要事務隔離級別來指定隔離性。

4.永續性(durability)一旦事務完成,資料庫的改變必須是持久化的。

事務併發所可能存在的問題: 

1.髒讀:乙個事務讀到另乙個事務未提交的更新資料。

2.不可重複讀:乙個事務兩次讀同一行資料,可是這兩次讀到的資料不一樣。 

3.幻讀:乙個事務執行兩次查詢,但第二次查詢比第一次查詢多出了一些資料行。 

4.丟失更新:撤消乙個事務時,把其它事務已提交的更新的資料覆蓋了。

實現事務管理可以分為兩種方式:

1.程式設計式事務管理:

transactiontemplate 的execute 方法接收乙個transactioncallback 例項。callback 也是spring 的經典設計,用於簡化使用者操作, transactioncallback 包含如下方法。 

(一)object dolntransaction(transactionstatus status) 。 該方法的方法體就是事務的執行體。 

transactiontemplate.execute(new transactioncallback()  

catch (exception e)  

finally

}}); 

(二)如果事務的執行體沒有返回值,則可以使用transactioncallbackwithoutresultl類的例項。這是個抽象類,不能直接例項化,只能用於建立匿名內部類。它也是transactioncallback 介面的子介面,該抽象類包含乙個抽象方法: 

void dolntransactionwithoutresult(transactionstatus status)該方法與dolntransaction 的效果非常相似,區別在於該方法沒有返回值,即事務執行體無須返回值。 

2.宣告式事務管理

兩種方式:1.基於tx和aop命名空間的xml配置檔案 

2.基於註解,這種方式最簡單,也是最為常用的,只需要在配置檔案中開啟對註解事務管理的支援。

然後在需要事務管理的地方加上@transactional註解,如:

@transactional(rollbackfor=exception.class)

public void insert(string sql, boolean flag) throws exception

}rollbackfor屬性指定出現exception異常的時候回滾,遇到檢查性的異常需要回滾,預設情況下非檢查性異常,包括error也會自動回滾。

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