資料庫事務使用

2021-08-03 03:25:11 字數 1017 閱讀 8867

使用場景:

如銀行的轉賬操作,減去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 加在類上面,下面方法預...