為什麼需要事務
需要:有一張銀行賬戶表,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有各...