簡括:
資料庫事務( transaction)是訪問並可能操作各種資料項的乙個資料庫操作序列,這些操作要麼全部執行,要麼全部不執行,是乙個不可分割的工作單位。事務由事務開始與事務結束之間執行的全部資料庫操作組成。作用:
保證資料的一致性。
原子性:不可分割;分類:一致性:資料一致;
隔離性:互不影響;
永續性:永久儲存資料。
1.程式設計事務:手動開啟關閉事務;程式設計事務**如下:xml配置:2.宣告式事務:自動開啟關閉事務。
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...