首先把hibernate的配置文件hibernate.cfg.xml放入spring的src目录下,并且为了便于测试导入了一个实体类Student.java以及它的Student.hbm.xml文件
第一种集成方式:首先定义一个MySessionFactory的类
package com.tz.core;import org.hibernate.SessionFactory;import org.hibernate.cfg.Configuration;import org.springframework.stereotype.Component;public class MysessionFactoryBean { public void setConfig(String config) { this.config = config; } public String getConfig() { return config; } public SessionFactory getSessionFactory() { return sessionFactory; } public void setSessionFactory(SessionFactory sessionFactory) { this.sessionFactory = sessionFactory; } private String config; private SessionFactory sessionFactory; public void init() { Configuration configuration = new Configuration().configure(config); sessionFactory = configuration.buildSessionFactory(); }}
在Spring的配置文件中进行IOC注入
注意要加上init-method="init",否则不会初始化,然后获取Session
package hibernate;import org.hibernate.Session;import org.hibernate.SessionFactory;import org.hibernate.cfg.Configuration;import org.junit.Test;public class TestHibernate { @Test public void handle(){ Configuration configuration = new Configuration().configure("hibernate.cfg.xml"); SessionFactory sessionFactory = configuration.buildSessionFactory(); Session session = sessionFactory.openSession(); System.out.print(session); }}
用JUTIL测试打印一个地址则成功了
2第二种方式,
获取方式
@Autowired private SessionFactory sessionFactory;
直接注入即可,记得扫包
第三种集成方式,在Spring的配置文件applicationContext中写入.这种方法的一大特色是可以使用SPRING的数据源,hibernate.cfg.xml不导入也可
com/tz/entity/Student.hbm.xml true true
获取SessionFactory对象的方式与第二种相同