Hibernate4:獲取SessionFactory的方式

這些年一直都在作Mybatis的開發,幾乎都忘記了Hibernate的開發,如今從新學習一下,下載最新的Hibernate 正式版Hibernate.4.2.2.Final。java

若是你是用maven的話就是session

<dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-core</artifactId>         
    <version>4.2.2.Final</version>        
</dependency>

發現Hibernate4已經將configuration的buildSessionFactory方法已經劃線了,說明已通過時了。app

後來參看hibernate源碼。以及API幫助文檔,發現Hibernate4新增了一個接口ServiceRegistry,maven

全部基於Hibernate的配置或者服務都必須統一貫這個ServiceRegistry註冊後才能生效。學習

因此不難看出 Hibernate4的配置入口再也不是Configuration對象,而是ServiceRegistry對象,Configuration對象將經過ServiceRegistry對象獲取配置信息。ui

使用了Builder模式建立一個ServiceRegistry對象,能夠看到源碼org.hibernate.service.ServiceRegistryBuilder這個類。spa

具體獲取以下:hibernate

     

import org.hibernate.HibernateException;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
import org.hibernate.service.ServiceRegistry;
import org.hibernate.service.ServiceRegistryBuilder;

public class Test {

    private static Configuration configuration = null;
    private static SessionFactory sessionFactory = null;
    private static ServiceRegistry serviceRegistry = null;
    public static void main(String[] args) {
        try {
            configuration = new Configuration().configure();
            serviceRegistry = new ServiceRegistryBuilder().applySettings(configuration.getProperties()).buildServiceRegistry();
            sessionFactory = configuration.buildSessionFactory(serviceRegistry);
        } catch (HibernateException e) {
            e.printStackTrace();
        }
    }

}
相關文章
相關標籤/搜索