spring學習筆記(21) 宣告式事務

2021-07-02 13:33:18 字數 1448 閱讀 8881

假設現在要實現乙個轉賬的功能,a轉賬給b,當a扣了100塊錢之後,突然發生了什麼導致程式無法正常執行,這時候,b沒有收到錢。。那麼,這100塊錢就不翼而飛了。。這時候就需要事務,a扣錢和b收到錢這兩件事要麼都成功,要麼都不成功。

/**

* 使用者支出

*@param username 使用者名稱

*@param out 支出金額

*@throws exception

*/public

void

outcome(string username,int out) throws runtimeexceptionelse

}/**

* 使用者入賬

*@param username 使用者名稱

*@param in 入賬金額

*/public

void

income(string username,int in)

/*** 轉賬

*@param from 從這個使用者

*@param to 轉到這個使用者

*@param money 轉賬金額

*@throws exception

*/public

void

transfer(string from,string to,int money) throws runtimeexception

這裡為了能夠看到實驗效果,我在轉賬這個操作中,是先入賬,然後另一方扣錢

資料庫結果

結果很明顯,拋了個異常,tom的錢沒有扣掉,jack卻還是加了100塊錢,這顯然是不行的。

id="transactionmanager"

class="org.springframework.jdbc.datasource.datasourcetransactionmanager">

name="datasource"

ref="datasource">

property>

bean>

transaction-manager="transactionmanager" />

@transactional

public

void

transfer(string from,string to,int money) throws runtimeexception

再次執行,發現jack餘額並沒有增加

Spring學習筆記 2 ,宣告式事物

宣告式事物 spring提供的jdbctemplate 1 配置事物管理器 2 開啟基於註解的事務控制模式,依賴tx命名空間 3 給事務方法加註解 transactional 隔離級別 isolation transactional isolation isolation.read uncommit...

Spring 九 宣告式事物

事物 保證資料的一致性和完整性 事物就是把一系列的動作當做乙個獨立的工作單元,這些動作要麼全部完成,要麼都不起作用 spring在不同的事務管理api之上定義了乙個抽象層,使得開發人員不必了解底層的事務管理api就可以使用spring的事務管理機制,spring支援程式設計式事務管理和宣告式的事務管...

Spring08 宣告式事務

1 回顧事務 事務是什麼?事務的四個屬性 acid 事務併發執行可能引起的問題 事務隔離級別 transaction isolation levels spring 中的7個事務傳播行為 2 測試事務public class userserviceimpl implements userservic...