深入理解Spring事務(初步)

2021-10-01 09:03:49 字數 1441 閱讀 2038

簡括:

資料庫事務( transaction)是訪問並可能操作各種資料項的乙個資料庫操作序列,這些操作要麼全部執行,要麼全部不執行,是乙個不可分割的工作單位。事務由事務開始與事務結束之間執行的全部資料庫操作組成。

作用:

保證資料的一致性。

原子性:不可分割;

一致性:資料一致;

隔離性:互不影響;

永續性:永久儲存資料。

分類:

1.程式設計事務:手動開啟關閉事務;

2.宣告式事務:自動開啟關閉事務。

xml方式和註解方式。

程式設計事務**如下:xml配置:

@component

public class transactionmanager

// 提交事務

public void commit(transactionstatus transactionstatus)

// 回滾事務

public void rollback(transactionstatus transactionstatus)

}

service:

public void add() catch (exception e)}}

}

dao:

public void add(string name, int age)
測試類:

如果不將int i=1/0注釋,會回滾事務,資料不會新增至資料庫。反之,新增成功。

修改xml:

修改service:

執行後會拋異常回滾事務,資料不會新增成功。需要將int i=1/0注釋,才會新增資料成功。

spring

中事務的定義:

propagation

(key

屬性確定**應該給哪個方法增加事務行為。這樣的屬性最重要的部份是傳播行為。)有以下選項可供使用:

深入理解spring事務

事務介紹 乙個事務要麼同時成功,要麼同時失敗 特性事務隔離級別 傳播行為 唯讀事務只進行讀取操作 readonly true 告訴spring當前事務只會進行讀取操作,不會進行修改操作,可以幫助資料庫引擎優化 注 如果設定為唯讀的話,千萬不要在事務裡修改資料,使用唯讀操作時,spring不會進行加鎖...

深入理解Spring事務的傳播行為

本文主要介紹下spring事務中的傳播行為。spring中的7個事務傳播行為 事務行為 說明propagation required 支援當前事務,假設當前沒有事務。就新建乙個事務 propagation supports 支援當前事務,假設當前沒有事務,就以非事務方式執行 propagation ...

深入理解MyBatis MyBatis事務

mybatis可以通過xml配置檔案設定是否進行事務管理,事務管理主要包括事務的提交,回滾等 本文主要介紹了事務的入口,mybatis事務操作對資料庫select操作和update操作的影響等 個人主頁 tuzhenyu s page string resource mybatis config.x...