前言
在前面的內容,基本已經學習了事務的基本概念以及事務隔離級別等,接下來的幾個小節,將學習怎么使用Spring進行事務管理,在Spring中,對事務進行管理有多種方法,主要分別編程式和聲明式,本小節主要學習編程式事務管理,后面講學習Spring的聲明式事務管理
編程式事務管理
所謂的編程式事務管理,其實就是通過編寫代碼的方式來進行事務管理,也就是通過將事務管理的代碼硬編碼在代碼中從而達到事務管理的作用,不過Spring的事務管理不同于JDBC原始的事務管理,在JDBC中,對事務進行管理首先要關閉自動提交,然后采用手動配置的方式來控制提交以及異常時回滾,而在Spring中,主要是使用Spring的接口來管理,具體如下代碼所示
這里模擬銀行轉賬的業務,正如我們所知道的,轉賬其實就是從一個賬號減去金額并且給另外一個賬號增加對應的金額
Spring配置文件
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> <!--開啟自動掃描--> <context:component-scan base-package="cn.xuhuanfeng.transaction"/> <!--配置數據源,這里采用dbcp--> <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"> <property name="url" value="jdbc:mysql://localhost:3306/spring"/> <property name="driverClassName" value="com.mysql.jdbc.Driver"/> <property name="username" value="root"/> <property name="password" value="huanfeng"/> </bean> <!--配置JdbcTemplate--> <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate"> <!--注入數據源--> <property name="dataSource" ref="dataSource"/> </bean> <!--配置事務管理--> <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <!--注入數據源--> <property name="dataSource" ref="dataSource"/> </bean> <!--配置事務管理操作類--> <bean id="transactionTemplate" class="org.springframework.transaction.support.TransactionTemplate"> <!--注入事務管理--> <property name="transactionManager" ref="transactionManager"/> <!--定義事務隔離級別,這里-1代表默認--> <property name="isolationLevel" value="-1"/> <!--配置傳播行為,0代表PROPAGATION_REQUIRED--> <property name="propagationBehavior" value="0"/> <!--由于進行讀寫操作,所以這里的只讀設置為false,默認也是false,所以可以不用設置--> <property name="readOnly" value="false"/> </bean> </beans>
本文名稱:詳解Spring學習之編程式事務管理-創新互聯
當前路徑:http://vcdvsql.cn/article6/ceohog.html
成都網站建設公司_創新互聯,為您提供網站維護、虛擬主機、建站公司、商城網站、搜索引擎優化、外貿建站
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯