第一種,通過一直使用的Configuration配置類獲取
@Test public void test1(){ //相對於3.x.x版本hibernate,我們在4.x.x采用如下方式獲取我們的會話工廠:至於5.xx已經換成未注釋方法 //1. 解析我們在hibernate.cfg.xml中的配置 // Configuration configuration = new Configuration().configure(); //2. 創建服務注冊類,進一步注冊初始化我們配置文件中的屬性 // ServiceRegistry serviceRegistry = new ServiceRegistryBuilder().applySettings(configuration.getProperties()).buildServiceRegistry(); //3. 創建我們的數據庫訪問會話工廠 // SessionFactory sessionFactory = configuration.buildSessionFactory(serviceRegistry); Configuration configuration = new Configuration().configure(); SessionFactory sessionFactory1 = configuration.buildSessionFactory(); //或者更加直接,省去中間量 configuration SessionFactory sessionFactory2 = new Configuration().configure().buildSessionFactory(); }
第二種方法則是新的API方法
package util; import Bean.User; import org.hibernate.SessionFactory; import org.hibernate.boot.Metadata; import org.hibernate.boot.MetadataSources; import org.hibernate.boot.registry.StandardServiceRegistry; import org.hibernate.boot.registry.StandardServiceRegistryBuilder; public class HibernateUtil { private static SessionFactory sessionFactory; public static SessionFactory getSessionFactory() { if (sessionFactory == null){ StandardServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder().configure().build(); Metadata metadata = new MetadataSources(serviceRegistry) .addAnnotatedClass(User.class)//User是qizhong 一個實體類 .buildMetadata(); sessionFactory = metadata.getSessionFactoryBuilder().build(); } return sessionFactory; } }
通過調用這個get方法得到 SessionFactory。
參考 : http://blog.csdn.net/qwe6112071/article/details/51010636
其中部分原文如下:
5.0引入了一個新的引導API旨在減輕這些限制和問題,同時允許我們更好的完成整合工作。想要連接更多關於新的引導API配置指南可到hibernate 官網的User Guide部分
在一定的限制上,Configuration配置方法仍然可以使用,不過它的一些方法已被刪除。在新的引導API底層實現部分,Configuration類仍大有作用.