myDaoSupport

說明:

1.在使用spring的時候,如何你用註解來實例化XxxDao,就無法繼承HibernateDaoSupport..

2.使用xml配置的話,可以通過繼承HibernateDaoSupport來進行持久化操作.


定義自己的MyDaoSupport類:

  1. package dao;  
  2.   
  3. import javax.annotation.Resource;  
  4.   
  5. import org.hibernate.SessionFactory;  
  6. import org.springframework.orm.hibernate4.support.HibernateDaoSupport;  
  7. import org.springframework.stereotype.Component;  
  8.   
  9. @Component("myDaoSupport")  
  10. public class MyDaoSupport extends HibernateDaoSupport{  
  11.     /** 
  12.      * 說明: 
  13.      * 1.在既使用註解又使用HibernateDaoSupport的情況下,只能這麼寫, 
  14.      * 原因是HibernateDaoSupport是抽象類,且方法都是final修飾的, 
  15.      * 這樣就不能爲其注入sessionFactory或者hibernateTemplate 
  16.      * 2.若使用xml配置的話,就可以直接給HibernateDaoSupport注入. 
  17.      */  
  18.     //而使用HibernateDaosupport,又必須爲其注入sessionFactory或者hibernateTemplate  
  19.       
  20.     //這裏爲其注入sessionFactory,最後只需要讓自己的Dao繼承這個MyDaoSupport.  
  21.     //不直接在自己的Dao裏繼承HibernateDaoSupport的原因是這樣可以簡化代碼,  
  22.     //不用每次都爲其注入sessionFactory或者hibernateTemplate了,在這裏注入一次就夠了.  
  23.     @Resource(name="sessionFactory")  
  24.     public void setSuperSessionFactory(SessionFactory sessionFactory){  
  25.         super.setSessionFactory(sessionFactory);  
  26.     }  
  27.       
  28. //  或者爲其注入hibernateTemplate  
  29. //  @Resource(name="hibernateTemplate")  
  30. //  public void setSuperHibernateTemplate(HibernateTemplate hibernateTemplate){  
  31. //      super.setHibernateTemplate(hibernateTemplate);  
  32. //  }  
  33. }  


eg:UserDao類:
  1. package dao;  
  2.   
  3. import model.User;  
  4.   
  5. import org.springframework.stereotype.Repository;  
  6.   
  7. @Repository  
  8. public class UserDao extends MyDaoSupport{  
  9.   
  10.     public void save(User user) {  
  11.         this.getHibernateTemplate().save(user);  
  12.     }  

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章