Hibernate框架之版本不同sessionFactory的获取不同

hibernate 版本不一样,获取sessionFactory的代码也有区别

A:Hibernate4.2.4或更低版本sessionFactory的获取方式

//创建配置对象
Configuration cfg = new Configuration().configure();
//创建服务注册对象(多态的方式)
ServiceRegistry serviceRegistry = new ServiceRegistryBuilder().applySettings(config.getProperties()).buildServiceRegistry();
//创建会化工厂对象
SessionFactory factory = cfg.buildSessionFactory();
//打开会话,获得Session对象
Session session = factory.openSession();
//打开事务
Transaction tx=session.beginTransaction();

B:hibernate5 或者4.3以上的获取方式

第一种:

//创建配置对象  
StandardServiceRegistry registry = new StandardServiceRegistryBuilder().configure("hibernate.cfg.xml").build();  
//2. 根据服务注册类创建一个元数据资源集,同时构建元数据并生成应用一般唯一的的session工厂  
SessionFactory sessionFactory = new MetadataSources(registry).buildMetadata().buildSessionFactory();  

第二种: 

//创建配置对象
Configuration cfg = new Configuration().configure();
//创建配置对象  
StandardServiceRegistry registry = new StandardServiceRegistryBuilder().applySettings(cfg.getProperties()).build();  
//创建会化工厂对象
SessionFactory factory = cfg.buildSessionFactory(registry);

第三种:适合Hibernate5.xx以上

        Configuration config=new Configuration().configure();
//创建回话工厂
sessionFactory=config.buildSessionFactory();
//创建session
session=sessionFactory.openSession();
transaction=session.beginTransaction();

hibernate 连接数据库的收sessionfactory为空

猜你喜欢

转载自blog.csdn.net/weixin_41609903/article/details/79985190