1. 程式人生 > >spring程式設計式事務

spring程式設計式事務

Spring (jdbc事務管理)
Spring 實現程式設計式事務,依賴於2大類,分別是 DataSourceTransactionManager(事務管理器),與 TransactionTemplate(事務模板)。下面詳細介紹 Spring是如何通過該類實現事務管理,我這裡模擬轉賬業務
首先給所有準備工作做好,匯入所有需要的 jar
1:建立資料庫連線資原始檔,我這裡是 mysql 的
這裡寫圖片描述
2.引入外部資原始檔,建立資料庫連線池
這裡寫圖片描述
我這裡使用的是阿里的 DruidData

3.建立 dao 類(介面省略,與平常一樣)
這裡寫圖片描述
注意:這裡需要實現 jdbcDaoSupport 介面,在執行操作時使用父類的 getJdbcTemplate()方法進行操作
在 spring.xml 核心配置檔案中配置 jdbcTemplate模板
這裡寫圖片描述


4.在 spring.xml 核心配置檔案中配置事務模板
這裡寫圖片描述
5.在 spring.xml 核心配置檔案中配置事務管理器
這裡寫圖片描述
6.建立 service 類(介面省略)
這裡寫圖片描述
建立 dao 引用,建立 transactionTemplate 引用,在操作方法中使用 transcationTemplate物件的 execute方法()傳入引數,new Tran……介面,以內部類的方式去實現該介面
7.在 spring.xml 核心配置檔案中配置 service bean
這裡寫圖片描述
8.在 spring.xml 核心配置檔案中配置 dao bean
這裡寫圖片描述
test 測試
這裡寫圖片描述
100使用者給102使用者轉賬500
轉賬前資料
這裡寫圖片描述

執行結果:
這裡寫圖片描述
這裡報的被除數不能為0是我故意在 service 中製造的異常,這裡已經運行了 dao 方法,並且傳送了修改語句,在轉賬途中遇到了錯誤,這時我們所配置的事務就有效果了
轉賬後資料:
這裡寫圖片描述
這裡的資料沒有變,說明事務回滾了
溫馨提示:spring 程式設計式事務不推薦使用,程式碼量大,程式碼耦合嚴重