天天看点

Spring HibernateTemplate与HibernateDaoSupport对比

HibernateTemplate与HibernateDaoSupport两者都是spring整合hibernate提供的模板技术。

对于保存一个对象,HibernateTemplate需要先配置

配置hibernateTemplate:

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

配置

<bean id="daoTemplate" abstract="true"  lazy-init="true" />
           
<bean id="empDao" class="com.wzy.dao.impl.EmpDaoImpl" parent="daoTemplate">
		<property name="hibernateTemplate" ref="hibernateTemplate"/> 
	</bean>
           

操作代码:

package com.wzy.dao.impl;

import org.springframework.orm.hibernate3.HibernateTemplate;

import com.wzy.dao.EmpDao;
import com.wzy.domain.Emp;

public class EmpDaoImpl implements EmpDao{
	private HibernateTemplate hibernateTemplate;
	
	public HibernateTemplate getHibernateTemplate() {
		return hibernateTemplate;
	}

	public void setHibernateTemplate(HibernateTemplate hibernateTemplate) {
		this.hibernateTemplate = hibernateTemplate;
	}

	@Override
	public void save(Emp emp) throws Exception {
		getHibernateTemplate().save(emp);
	}

}
           

使用HibernateDaoSupport,很简洁:

package com.wzy.dao.impl;

import org.springframework.orm.hibernate3.support.HibernateDaoSupport;

import com.wzy.dao.EmpDao;
import com.wzy.domain.Emp;

public class EmpDaoImpl extends HibernateDaoSupport implements EmpDao{
	@Override
	public void save(Emp emp) throws Exception {
		this.getHibernateTemplate().save(emp);
	}

}
           

结论:使用HibernateDaoSupport更方便。但是类继承了HibernateDaoSupport,不能再继承别的类,因此有些不方便。

使用时,灵活选择就是了。下一篇将会再深入分析一下。

继续阅读