假設現在要實現乙個轉賬的功能,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...