Spring中的模板技術

悠悠隱於市發表於2011-02-09

1.HibernateTemplate
 

HibernateTemplate裡那些靜態(必須執行)的部分
獲取session
判斷當前的方法是否處在一個事務中
異常處理部分:處理異常
Finally塊:看看是否應當關閉session
這些功能已經由Spring提供好了 ..


其實 HibernateTemplate在Spring整合早些版本的hibernate(2.x)時是非常有用的,它將session與當前執行緒進行繫結,確保了進行多次方法呼叫後事務的提交回滾和session的關閉都是針對同一個session
目前的Hibernate(3.x)中的sessionFactory.getCurrentSession();提供了相同的功能,因此template的功能有所重複,你可以根據自己情況選擇使用

 

 

2.JdbcTemplate

 

使用JDBC與Hibernate模板的不同之處:
JDBC模板的使用依賴於javax.sql.DataSource,而Hibernate模板的使用依賴於org.hibernate.SessionFactory
相同之處:
它們都會應用事務切面,自動處理事務的提交和回滾
無須自己開啟關閉Session或Connection

我們以前介紹過,DataSource一般是由應用伺服器提供的,用於獲取資料庫連線的連線工廠
它同時整合了連線池的功能
為了便於不依賴於容器,方便在容器外部進行測試,Spring提供了一個實現了DataSource介面的類DriverManagerDataSource,它僅僅是對資料庫直連方式的一個簡單封裝,不提供連線池的功能

.

 

事務管理器:
為了配合JDBC的事務管理,需要將事務管理器的實現換為DataSourceTransactionManager

 

相關文章