關於HibernateDaoSupport類 – JAVA編程語言程序開發技術文章

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”的策略,自動提高數據庫訪問的性能。

作者:huang798807481

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *