關於HibernateDaoSupport類

Spring爲Hibernate的DAO提供工具類:HibernateDaoSupport。該類主要提供了兩個方法:

public final HibernateTemplate getHibernateTemplate()
public final void setSessionFactory(SessionFactory sessionFactory)
其中,setSessionFactory方法接收來自Spring的applicationContext的依賴注入,接收了配置在Spring中的SessionFactory實例,getHibernateTemplate方法用來利用剛纔的SessionFactory生成Session,再生成HibernateTemplate來完成數據庫的訪問。

典型的繼承HibernateDaoSupport的DAO代碼如下:

public class UserDAOImpl extends HibernateDaoSupport implements UserDAO{
public void save(Users transientInstance) {
log.debug("saving Users instance");
try {
getHibernateTemplate().save(transientInstance);
log.debug("save successful");
} catch (RuntimeException re) {
log.error("save failed", re);
throw re;
}
}
………………
}
實際上,DAO的實現依然藉助了HibernateTemplate的模板訪問方式,只是,HibernateDaoSupport將依賴注入SessionFactory的工作已經完成,獲取HibernateTemplate的工作也已經完成。注意,這種方法須在Spring的配置文件中配置SessionFactory。

在繼承HibrnateDaoSupport的DAO實現裏,Hibernate Session的管理完全不需要Hibernate代碼打開,而由Spring來管理。Spring會根據實際的操作,採用“每次事務打開一次session”的策略,自動提高數據庫訪問的性能。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章