1. 程式人生 > >使用Spring程式設計式事務TransactionTemplate

使用Spring程式設計式事務TransactionTemplate

使用場景
假如有一個專案設定了資料庫最大連線數為3,然後專案中提供了一個介面,介面中的一個方法會做以下邏輯處理:①首先在資料庫的某個表中查詢出一條記錄,②然後利用該條記錄的資料去調第三方的介面,然後第三方介面放回資料,③最後修改該條記錄的某個欄位的資料然後更新回資料庫。
假設有4個使用者同一時間呼叫該介面,然而由於網路原因,該介面做邏輯處理的第②步花費了較長時間,而我們的資料庫最大連線數為3,現在有4個使用者同時呼叫該介面,這樣其中一位使用者就會調用出錯。
這裡寫圖片描述
為了解決這個問題,我想到了兩種解決辦法,第一種是加大資料庫連線數,但是這種方法有點治標不治本的感覺,因為就算我連線數加到100,當有101的併發訪問時,也有可能會產生這種超過最大連線數的報錯。所以,我認為還是使用spring的程式設計式事務處理會好一點。

思路就是在該介面邏輯的第①步以及第③步使用程式設計式事務控制。

使用步驟
第一步:
這裡寫圖片描述
第二步:
這裡寫圖片描述
第三步:並且提供set方法
這裡寫圖片描述
這裡寫圖片描述