ssh整合之HibernateDaoSupport的使用

时间:2022-12-20 14:25:05

继承HibernateDaoSupport有三种方式:

1.

Java代码   ssh整合之HibernateDaoSupport的使用
  1. @Component("logDAO")   
  2. public class LogDAOImpl extends HibernateDaoSupport implements LogDAO {  
  3.     public void save(Log log) {  
  4.         this.getHibernateTemplate().save(log);  
  5.     }  
  6. }  

    xml中注入:

Java代码   ssh整合之HibernateDaoSupport的使用
  1. <bean id="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate">  
  2.       <property name="sessionFactory" ref="sessionFactory"></property>  
  3.  </bean>  
  4.    
  5.  <bean id="logDao" class="com.zchen.spring.LogDaoImpl">  
  6.       <property name="hibernateTemplate" ref="hibernateTemplate"></property>  
  7.  </bean>  

   也可以直接注入SessionFactory

Java代码   ssh整合之HibernateDaoSupport的使用
  1. <bean id="logDao" class="com.zchen.spring.LogDaoImpl">  
  2.     <property name="sessionFactory" ref="sessionFactory"></property>  
  3. </bean>  

 这样一来每个daoImpl都要在bean.xml中注入所以第二种方式就是:

2.

Java代码   ssh整合之HibernateDaoSupport的使用
  1. import javax.annotation.Resource;  
  2. import org.springframework.orm.hibernate3.HibernateTemplate;  
  3. import org.springframework.orm.hibernate3.support.HibernateDaoSupport;  
  4. import org.springframework.stereotype.Component;  
  5. @Component  
  6. public class SuperDAO {  
  7.     private HibernateTemplate hibernateTemplate;  
  8.     public HibernateTemplate getHibernateTemplate() {  
  9.         return hibernateTemplate;  
  10.     }  
  11.     @Resource  
  12.     public void setHibernateTemplate(HibernateTemplate hibernateTemplate) {  
  13.         this.hibernateTemplate = hibernateTemplate;  
  14.     }  
  15.       
  16.       
  17. }  

 

    所有的daoImpl都继承自SuperDao

Java代码   ssh整合之HibernateDaoSupport的使用
  1. package com.zchen.dao.impl;  
  2. import javax.annotation.Resource;  
  3. import org.hibernate.Session;  
  4. import org.springframework.orm.hibernate3.HibernateTemplate;  
  5. import org.springframework.stereotype.Component;  
  6. import com.zchen.dao.UserDAO;  
  7. import com.zchen.model.User;  
  8. @Component("urseDao"public class UserDAOImpl extends SuperDAO implements UserDAO {  
  9.     public void save(User user) {         
  10.         this.getHibernateTemplate().save(user);   
  11.     }  
  12. }  

 

Xml.xml代码   ssh整合之HibernateDaoSupport的使用
  1. <bean id="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate">  
  2.       <property name="sessionFactory" ref="sessionFactory"></property>  
  3.  </bean>  
  4.    

 3继承sessionFactory

Java代码   ssh整合之HibernateDaoSupport的使用
  1. import javax.annotation.Resource;  
  2. import org.hibernate.SessionFactory;  
  3. import org.springframework.orm.hibernate3.support.HibernateDaoSupport;  
  4. import org.springframework.stereotype.Component;  
  5. @Component  
  6. public class SuperDAO extends HibernateDaoSupport {   
  7.     @Resource(name="sessionFactory")  
  8.     public void setSuperSessionFactory(SessionFactory sessionFactory) {  
  9.         super.setSessionFactory(sessionFactory);  
  10.     }     
  11. }  

   继承hibernateTemplate也是一样的

Java代码   ssh整合之HibernateDaoSupport的使用
  1. @Component  
  2. public class SuperDAO extends HibernateDaoSupport {  
  3.       
  4.       
  5.     @Resource(name="hibernateTemplate")  
  6.     public void setSuperHibernateTemplate(HibernateTemplate hibernateTemplate) {  
  7.         super.setHibernateTemplate(hibernateTemplate);  
  8.     }  
  9.       
  10.       
  11. }  

  

 

Java代码   ssh整合之HibernateDaoSupport的使用
  1. @Component("u")   
  2. public class UserDAOImpl extends SuperDAO implements UserDAO {  
  3.     public void save(User user) {  
  4.         this.getHibernateTemplate().save(user);  
  5.     }  
  6. }  

 如果继承hibernateTemplate要配置bean

 

  <bean id="userDao" class="com.zchen.spring.UserDaoImpl">
   <property name="hibernateTemplate" ref="hibernateTemplate"></property>
 </bean>