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,不能再继承别的类,因此有些不方便。
使用时,灵活选择就是了。下一篇将会再深入分析一下。