HibernateDaoSupport

tDaoHibern Factory而Hibern Hibern

Spring的Hibernate ORM 框架帶來了方便的HibernateDaoSupport類,你的DAO類可以繼承它:
public class StudentDaoHibernate extends HibernateDaoSupport implements StudentDao{
.................
}
如果你選擇這種設計,就需要動態注入SessionFactory而HibernateDaoSupport包含這個屬性.這個類提供了一個方便的方法getHibernateTemplate(); 就能得到HibernateTemplate的一個實例.它也有getSession()和releaseSession,以便於你應為某些原因而不使用HibernateTempate的情況下執行Hibernate操作。
HibernateDaoSupport提供了基於AOP事務的自動處理,程式設計師完全可以不用理會事務的開始與提交。在JDBC中一個Connection對象使用一個事務,那么在Hibernate中一個事務肯定要關聯一個SessionFactory了,然而這個SessionFactory卻沒有在DAO中體現。其實主要的原因是HibernateDaoSupport類已經默默地做了封裝的工作,它用一個setSessionFactory方法將SessionFactory進行注入,所以繼承自HibernateDaoSupport類的DAO都會具有SessionFactory的屬性,從而可以通過SessionFactory創建Session實例運算元據庫。
在繼承HibrnateDaoSupport的DAO實現里,Hibernate Session的管理完全不需要Hibernate代碼打開,而由Spring來管理。Spring會根據實際的操作,採用“每次事務打開一次session”的策略,自動提高資料庫訪問的性能。

相關詞條

相關搜尋

熱門詞條

聯絡我們