Javaweb 事務實現

2021-09-19 10:50:02 字數 1041 閱讀 4086

為什麼需要事務

需要:有一張銀行賬戶表,a使用者給b使用者轉賬:a賬戶減少,b賬戶增加,但是a操作完之後斷電了????

解決方案:a減少錢,但是不要立即修改資料表,b收到錢之後,同時修改資料表

什麼是事務

事務:transaction,一串行要發生的連續的操作。

事務的特點:連續的操作要麼全部成功,要麼全部失敗。

事情安全:一種保護 連續操作 同時滿足(實現)的一種機制。

事務安全的意義:保證資料操作的完整性。

a給b轉賬10塊錢。

操作過程:

a-10塊錢

b+10塊錢

具體的**實現

service:

bool transform(from,to,money)

實現步驟:

(1)表的型別:innodb

show create table 表名

看一下自己的引擎是不是innodb

不是則用下面sql語句修改

alter table mysql02.user engine=innodb;

我資料庫的是mysql02、表user

(2)確保2次操作的connection是同乙個吧。

執行的2次sql,必須在同乙個connection和session會話,

dao方法內部:需要使用到connection,

在service層建立connection物件,需要將connection物件專遞給dao層

注意:dao中所有的方法都需要乙個connection引數。將connection物件和執行緒進行繫結。

(3)開啟事務

trycatch(exception e)
遇到除0異常時會**捉到 ,回

Spring事務實現方式

1.一種是使用xml實現事務 開發基本不用 transactional的所有可選屬性 propagation 用於設定事務傳播屬性。該屬性型別為 propagation 列舉,預設值為 propagation.required。isolation 用於設定事務的隔離級別。該屬性型別為 isolati...

事務實現,redo,undo,鎖

事務 transaction 是資料庫區別於檔案系統的重要特性之一。在檔案系統中,如果你正在寫檔案,但是作業系統突然崩潰了,這個檔案就很有可能被破壞。當然,有一些機制可以把檔案恢復到某個時間點。不過,如果需要保證兩個檔案同步,這些檔案系統可能就顯得無能為力了。如當你需要更新兩個檔案時,更新完乙個檔案...

spring事務實現原理

如果你用過spring aop,那麼理解註解事務就十分簡單了。事務註解本質上實在事務方法加入乙個around切面,在方法開始前開始事務,在丟擲異常後回滾事務。使用簡單偽 可以簡單理解為 dowithtransaction catch exception ex spring transaction有各...