使用場景:
如銀行的轉賬操作,減去a賬戶的金額與增加b賬戶的金額
要麼同時發生,要麼同時不發生
當由於網路等問題導致其中一項操作沒有成功時
要麼全部回滾,即回到沒有轉賬的初始狀態
或者標記沒有成功的地方進行執行,使之全部執行成功
使用事務的好處:
1.將相關操作放入同乙個事務中,要麼全部成功要麼全部失敗,保持了一致性
2.可將事務非同步執行,減少前端等待時間,提高使用者體驗
3.後端**更具低耦合性
mysql的事務使用:
begin
update person set name='sunsun' where id =1
select * from person
commit
select * from person
xorm的事務使用
session := engine.newsession()
defer session.close()
// add begin() before any action
err := session.begin()
user1 := userinfo
_, err = session.insert(&user1)
if err != nil
user2 := userinfo
_, err = session.where("id = ?", 2).update(&user2)
if err != nil
_, err = session.exec("delete from userinfo where username = ?", user2.username)
if err != nil
// add commit() after all actions
err = session.commit()
if err != nil
資料庫中事務使用例項
1.資料庫的事務很重要,在保持資料一致性有很大的用處 2.事務會鎖定資料庫表在使用時一定要注意,查詢語句加上不鎖表 select islockedout islockedout,lastlockoutdate lastlockoutdate,failedpasswordattemptcount fa...
資料庫事務特性 隔離級別 事務使用場景
什麼是事物?要麼都成功,要麼都失敗 比如 a卡里有 1000 塊,b 卡有500 塊 a 轉賬 100 到 b 卡 如果在轉賬的時候,只執行到一半,a 轉賬了,b 沒收到,這樣肯定是不行的 所以需要事務來保證安全性 事務原則 acid 原則 隔離級別 執行事務 事務處理過程關閉自動提交 開啟乙個事物...
batis plus事務使用
service實現類 service transactional propagation propagation.nested,isolation isolation.default,readonly false,rollbackfor restexception.class 加在類上面,下面方法預...