1. 程式人生 > >ssh整合之HibernateDaoSupport的使用

ssh整合之HibernateDaoSupport的使用

繼承HibernateDaoSupport有三種方式:

1.

Java程式碼  收藏程式碼
  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程式碼  收藏程式碼
  1. <bean id="hibernateTemplate"
     class="org.springframework.orm.hibernate3.HibernateTemplate">  
  2.       <property name="sessionFactory" ref="sessionFactory"></property>  
  3.  </bean>  
  4.  <bean id="logDao" class="com.zchen.spring.LogDaoImpl">  
  5.       <property name="hibernateTemplate" ref="hibernateTemplate"></property>  
  6.  </bean>  

   也可以直接注入SessionFactory

Java程式碼  收藏程式碼
  1. <bean id="logDao" class="com.zchen.spring.LogDaoImpl">  
  2.     <property name="sessionFactory" ref="sessionFactory"></property>  
  3. </bean>  

 這樣一來每個daoImpl都要在bean.xml中注入所以第二種方式就是:

2.

Java程式碼  收藏程式碼
  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. }  

    所有的daoImpl都繼承自SuperDao

Java程式碼  收藏程式碼
  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程式碼  收藏程式碼
  1. <bean id="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate">  
  2.       <property name="sessionFactory" ref="sessionFactory"></property>  
  3.  </bean>  

 3繼承sessionFactory

Java程式碼  收藏程式碼
  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程式碼  收藏程式碼
  1. @Component  
  2. public class SuperDAO extends HibernateDaoSupport {  
  3.     @Resource(name="hibernateTemplate")  
  4.     public void setSuperHibernateTemplate(HibernateTemplate hibernateTemplate) {  
  5.         super.setHibernateTemplate(hibernateTemplate);  
  6.     }  
  7. }  
Java程式碼  收藏程式碼
  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>