Hibernate4 获取SessionFactory 的体式格式

    添加时间:2013-5-28 点击量:

    这些年一向都在做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 }



    我俩之间有着强烈的吸引力。短短几个小时后,我俩已经明白:我们的心是一个整体的两半,我俩的心灵是孪生兄妹,是知己。她让我感到更有活力,更完美,更幸福。即使她不在我身边,我依然还是感到幸福,因为她总是以这样或者那样的方式出现在我心头。——恩里克·巴里奥斯《爱的文明》
    分享到: