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