Spring HibernateTemplate与HibernateDaoSupport对比

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

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

配置hibernateTemplate:

[html] view plain copy
 
  1. <bean id="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate">  
  2.         <property name="sessionFactory" ref="sessionFactory" />  
  3.     </bean>  

配置

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


 

操作代码:

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


 

使用HibernateDaoSupport,很简洁:

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


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

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

原文地址:https://www.cnblogs.com/sddychj/p/7699116.html