Spring4学习(四)Spring4中整合Hibernate4

阅读更多

        Spring4.2.8版本官方文档说明,这一版本的Spring强烈建议使用Hibernate5,而且Hibernate3.6版本以上才支持,低版本的Hibernate只好选择与之相适应的Spring版本,此例中采用Hibernate4.3.11版本。

        Hibernate配置文件,由于使用Spring,数据库连接池等配置可以有选择配置到spring文件中,这样Hibernate配置文件就可以尽可能简化。






    

        
        org.hibernate.dialect.MySQL5InnoDBDialect

        
        thread
		
		
        
        org.hibernate.cache.internal.NoCacheProvider

        
        true

        
        update
        
		
        
	
		
		
    


        需要指出的是上面的hibernate配置文件是可选的,可以完全将配置文件内容配置到spring文件。

        Spring配置文件  分两步配置  第一配置数据源 第二配置SessionFactory 



	
   
    
   

	
    
	   
	      
	    
        
        
             
	      
	      
	       
	      
	   
	      
	      
	   
	      
	      
	   
	      
	      
	    
	      
	      
	      
	      
	   
	      
	      
	      
	   
	      
	       
	
	
	
        
        
        
        
        
        
        
    	
      
      
    

         Dao层中使用SessionFactory

@Repository("musicH4Dao")
public class MusicH4DaoImpl implements MusicDao {

	@Autowired
	private SessionFactory sessionFactory;

	@Override
	public String get(Music music) {
		Session session = sessionFactory.openSession();
		try {
			String sql = "from Music as music where music.id = :id ";
			Music bean = (Music) session.createQuery(sql)
					.setParameter("id", music.getId()).uniqueResult();
			return GsonUtil.getInstance().convertToJson(bean);
		} finally {
			session.close();
		}
	}

	@Override
	public String list(Music music) {
		String sql = "from Group as group where group.id = :id ";
		Session session = sessionFactory.openSession();
		try {
			@SuppressWarnings("unchecked")
			List list = session.createQuery(sql)
					.setParameter("id", music.getId()).list();
			return GsonUtil.getInstance().convertToJson(list);
		} finally {
			session.close();
		}
	}

	

}

     测试代码

public class Main {
	public static void main(String[] args) {
		String classPath = "classpath*:conf/spring/app_hibernate.xml";
		ApplicationContext context = new ClassPathXmlApplicationContext(classPath);
		MusicDao dao = context.getBean("musicH4Dao", MusicDao.class);
		Music music = new Music();
		music.setId("123");
		System.out.println(dao.get(music));
		music.setId("297ed3f359058806015905880d110000");
		System.out.println(dao.list(music));
	}

}

 

你可能感兴趣的:(spring,hibernate4,druid)