HibernateTemplate 与 HibernateDaoSupport

HibernateTemplate 可将Hibernate 的持久层访问模板化,使用HibernateTemplate 非常简单。创建HibernateTemplate 实例后,注入一个SessionFactory 的引用,就可执行持久化操作。SessionFactory 对象可通过构造参数传入,或通过设值方式传入。

<bean id="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate">
	<property name="sessionFactory" ref="sessionFactory"></property>
</bean>

可以通过上面的方法注入sessionFactroy,说明对于的org.springframework.orm.hibernate3.HibernateTemplate 你一定会员

setSessionFactory方法,实际上该方法是在他的父类HibernateAccessor中



Spring为Hibernate的DAO提供工具类:HibernateDaoSupport。该类主要提供了两个方法:
public final HibernateTemplate getHibernateTemplate()
public final void setSessionFactory(SessionFactory sessionFactory)

其中,setSessionFactory方法接收来自Spring的applicationContext的依赖注入,接收了配置在
Spring 中的SessionFactory实例,getHibernateTemplate方法用来利用刚才的SessionFactory生成Session, 
再生成HibernateTemplate来完成数据库的访问。

因为hibernateDaoSupport中setSessionFactory()方式是final的, 不能被重写 , 

但是可以在继承hibernateDaoSupport的子类中加入一个方法为SessionFactory注入值

代码如下:

@Resource(name="sessionFactory")
	public void setSuperSessionFactory(SessionFactory sessionFactory) {
		super.setSessionFactory(sessionFactory);
	}




你可能感兴趣的:(HibernateTemplate 与 HibernateDaoSupport)