jar包:
建立乙個測試類:
@test
// jdbc模板的基本使用:
public void demo1()
1.配置內建連線池
2.將模板配置到spring中(也可以讓dao層繼承hibernatedaosupport類注入sessionfactory建立,或者是連線池)
3.編寫測試類
引入spring-aop.jar
@runwith(springjunit4classrunner.class)
public class springdemo2
}
【配置連線池】
配置連線池
platformtransactionmanager:平台事務管理器.
真正管理事務的物件
使用spring jdbc或ibatis 進行持久化資料時使用
org.springframework.jdbc.datasource.datasourcetransactionmanager
使用hibernate版本進行持久化資料時使用
org.springframework.orm.hibernate3.hibernatetransactionmanager
transactiondefinition:事務定義資訊
事務定義資訊:
隔離級別
傳播行為
超時資訊
是否唯讀
transactionstatus:事務的狀態:
記錄事務的狀態
spring的這組介面是如何進行事務管理:
平台事務管理根據事務定義的資訊進行事務的管理,事務管理的過程中產生一些狀態,將這些狀態記錄到transactionstatus裡面
事務的傳播行為:
propagion_*** :事務的傳播行為
保證同乙個事務中
propagation_required 支援當前事務,如果不存在 就新建乙個(預設)
propagation_supports 支援當前事務,如果不存在,就不使用事務
propagation_mandatory 支援當前事務,如果不存在,丟擲異常
保證沒有在同乙個事務中
propagation_requires_new 如果有事務存在,掛起當前事務,建立乙個新的事務
propagation_not_supported 以非事務方式執行,如果有事務存在,掛起當前事務
propagation_never 以非事務方式執行,如果有事務存在,丟擲異常
propagation_nested 如果當前事務存在,則巢狀事務執行
[事務傳播詳細解釋][5]
建立業務層和dao的類
public inte***ce accountservice
public class accountserviceimpl implements accountservice
@override
/*** from:轉出的賬號
* to:轉入的賬號
* money:轉賬金額
*/public void transfer(string from, string to, double money)
}public inte***ce accountdao
public class accountdaoimpl extends jdbcdaosupport implements accountdao
@override
public void inmoney(string to, double money)
}
配置業務層和dao
1.5.1.3編寫測試類
@runwith(springjunit4classrunner.class)
public class springdemo4
}
手動編寫**完成事務的管理
配置事務管理器
配置事務管理的模板
需要在業務層注入事務管理模板
手動編寫**實現事務管理
public void transfer(final string from, final string to, final double money)
});}
不需要進行手動編寫**,通過一段配置完成事務管理
引入aop開發的包
aop聯盟.jar
spring-aop.jar
aspectj.jar
spring-aspects.jar
配置事務管理器
配置事務的通知
配置aop事務
spring jdbc 事務配置
配置web.xml xmlns xsi version 3.0 org.springframework.web.context.contextloaderlistener contextconfiglocation 類上事務的宣告 transactional rollbackfor exceptio...
spring jdbc事務管理
以前在做spring security時,就注意到乙個細節,那就是當我只使用spring核心功能與hibernate時,居然也要依賴於spring jdbc包,至少會報以下錯誤 org springframework jdbc support sqlexceptiontranslator 當時並不在...
Day3 Spring JDBC 事務管理
jdbc的程式設計 獲取鏈結 class.forname com.mysql.jdbc.driver connection conn drivermanager.getconnection url,username,password statement stmt conn.createstateme...