说明:
1.在使用spring的时候,如何你用注解来实例化XxxDao,就无法继承HibernateDaoSupport..
2.使用xml配置的话,可以通过继承HibernateDaoSupport来进行持久化操作.
 
定义自己的MyDaoSupport类:
- package dao;
 - import javax.annotation.Resource;
 - import org.hibernate.SessionFactory;
 - import org.springframework.orm.hibernate4.support.HibernateDaoSupport;
 - import org.springframework.stereotype.Component;
 - @Component("myDaoSupport")
 - public class MyDaoSupport extends HibernateDaoSupport{
 - /**
 - * 说明:
 - * 1.在既使用注解又使用HibernateDaoSupport的情况下,只能这么写,
 - * 原因是HibernateDaoSupport是抽象类,且方法都是final修饰的,
 - * 这样就不能为其注入sessionFactory或者hibernateTemplate
 - * 2.若使用xml配置的话,就可以直接给HibernateDaoSupport注入.
 - */
 - //而使用HibernateDaosupport,又必须为其注入sessionFactory或者hibernateTemplate
 - //这里为其注入sessionFactory,最后只需要让自己的Dao继承这个MyDaoSupport.
 - //不直接在自己的Dao里继承HibernateDaoSupport的原因是这样可以简化代码,
 - //不用每次都为其注入sessionFactory或者hibernateTemplate了,在这里注入一次就够了.
 - @Resource(name="sessionFactory")
 - public void setSuperSessionFactory(SessionFactory sessionFactory){
 - super.setSessionFactory(sessionFactory);
 - }
 - // 或者为其注入hibernateTemplate
 - // @Resource(name="hibernateTemplate")
 - // public void setSuperHibernateTemplate(HibernateTemplate hibernateTemplate){
 - // super.setHibernateTemplate(hibernateTemplate);
 - // }
 - }
 
 
- package dao;
 - import model.User;
 - import org.springframework.stereotype.Repository;
 - @Repository
 - public class UserDao extends MyDaoSupport{
 - public void save(User user) {
 - this.getHibernateTemplate().save(user);
 - }
 - }  
 
                  
                  
                  
                  
      
          
                
                
                
                
              
                
                
                
                
                
              
                
                
              
            
                  
					1805
					
被折叠的  条评论
		 为什么被折叠?
		 
		 
		
    
  
    
  
            


            