Spring HibernateTemplate与HibernateDaoSupport对比

时间:2023-03-10 00:19:16
Spring HibernateTemplate与HibernateDaoSupport对比

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

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

配置hibernateTemplate:

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

配置

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

操作代码:

  1. package com.wzy.dao.impl;
  2. import org.springframework.orm.hibernate3.HibernateTemplate;
  3. import com.wzy.dao.EmpDao;
  4. import com.wzy.domain.Emp;
  5. public class EmpDaoImpl implements EmpDao{
  6. private HibernateTemplate hibernateTemplate;
  7. public HibernateTemplate getHibernateTemplate() {
  8. return hibernateTemplate;
  9. }
  10. public void setHibernateTemplate(HibernateTemplate hibernateTemplate) {
  11. this.hibernateTemplate = hibernateTemplate;
  12. }
  13. @Override
  14. public void save(Emp emp) throws Exception {
  15. getHibernateTemplate().save(emp);
  16. }
  17. }

使用HibernateDaoSupport,很简洁:

  1. package com.wzy.dao.impl;
  2. import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
  3. import com.wzy.dao.EmpDao;
  4. import com.wzy.domain.Emp;
  5. public class EmpDaoImpl extends HibernateDaoSupport implements EmpDao{
  6. @Override
  7. public void save(Emp emp) throws Exception {
  8. this.getHibernateTemplate().save(emp);
  9. }
  10. }

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

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