HibernateDaoSupport 简介
2010-09-29 10:27
399 查看
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”的策略,自动提高数据库访问的性能。
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”的策略,自动提高数据库访问的性能。
相关文章推荐
- HibernateDaoSupport 简介
- 数据库访问层中使用GenericDao和HibernateDaoSupport
- hibernateTemplate以及spring中的hibernateDaosupport的配置
- HibernateDaoSupport详解
- 继承HibernateDaoSupport后怎样获取session&&注入sessionFactory
- 由openSession、getCurrentSession和HibernateDaoSupport浅谈Spring对事物的支持
- [原创]使用Spring的HibernateDaoSupport实现BaseDaoImpl类
- HibernateDaoSupport
- ssh中的HibernateDaoSupport 实现分页
- SSH中继承HibernateDaoSupport 的通用Dao
- 对HibernateDaoSupport进行二次封装:hibernate增删改查组件
- spring中使用HibernateTemplate或HibernateDaoSupport报类型转换错误
- HibernateDaoSupport与JdbcDaoSupport
- hibernate 与spring结合,hibernatedaoSupport使用注意事项
- 对HibernateDaoSupport进行二次封装:hibernate增删改查组件
- Class<T>泛型对象的获取及通过继承了HibernateDaoSupport的注入sessionFacoty的简单方式
- 数据库访问层中使用GenericDao和HibernateDaoSupport
- Spring 的 HibernateDaoSupport 类的 getSession() 导致的连接泄露问题
- 继承hibernateDaoSupport之后通过注解方式注入SessionFactory
- HibernateDaoSupport和HibernateTemplate