zoukankan      html  css  js  c++  java
  • Hibernate4 获取SessionFactory 的方式

    这些年一直都在做Mybatis的开发,几乎都忘记了Hibernate的开发,现在重新学习一下,下载最新的Hibernate 正式版Hibernate.4.2.2.Final。

    如果你是用maven的话就是

    1         <dependency>
    2             <groupId>org.hibernate</groupId>
    3             <artifactId>hibernate-core</artifactId>
    4             <version>4.2.2.Final</version>
    5         </dependency>

    发现Hibernate4已经将configuration的buildSessionFactory方法已经划线了,说明已经过时了。

    后来参看hibernate源码。以及API帮助文档,发现Hibernate4新增了一个接口ServiceRegistry,

    所有基于Hibernate的配置或者服务都必须统一向这个ServiceRegistry注册后才能生效。

    所以不难看出 Hibernate4的配置入口不再是Configuration对象,而是ServiceRegistry对象,Configuration对象将通过ServiceRegistry对象获取配置信息。

    使用了Builder模式创建一个ServiceRegistry对象,可以看到源码org.hibernate.service.ServiceRegistryBuilder这个类。

    具体获取如下:

     1 import org.hibernate.HibernateException;
     2 import org.hibernate.SessionFactory;
     3 import org.hibernate.cfg.Configuration;
     4 import org.hibernate.service.ServiceRegistry;
     5 import org.hibernate.service.ServiceRegistryBuilder;
     6 
     7 public class Test {
     8 
     9     private static Configuration configuration = null;
    10     private static SessionFactory sessionFactory = null;
    11     private static ServiceRegistry serviceRegistry = null;
    12     public static void main(String[] args) {
    13         try {
    14             configuration = new Configuration().configure();
    15             serviceRegistry = new ServiceRegistryBuilder().applySettings(configuration.getProperties()).buildServiceRegistry();
    16             sessionFactory = configuration.buildSessionFactory(serviceRegistry);
    17         } catch (HibernateException e) {
    18             e.printStackTrace();
    19         }
    20     }
    21 
    22 }
  • 相关阅读:
    矩阵游戏|ZJOI2007|BZOJ1059|codevs1433|luoguP1129|二分图匹配|匈牙利算法|Elena
    BZOJ3262: 陌上花开
    BZOJ1176: [Balkan2007]Mokia
    BZOJ1261: [SCOI2006]zh_tree
    BZOJ2004: [Hnoi2010]Bus 公交线路
    BZOJ1066: [SCOI2007]蜥蜴
    BZOJ1294: [SCOI2009]围豆豆Bean
    BZOJ2756: [SCOI2012]奇怪的游戏
    BZOJ1857: [Scoi2010]传送带
    BZOJ1237: [SCOI2008]配对
  • 原文地址:https://www.cnblogs.com/quanyongan/p/3101815.html
Copyright © 2011-2022 走看看