Hibernate5.x中新建SessionFactory的兩種方法


第一種,通過一直使用的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

其中部分原文如下:

用來引導Hibernate(建立一個SessionFactory)的經典方式一直都是利用Configuration配置類。從hibernate的古老版本到現在,它一直支持用戶按任意的順序添加新的配置和關系映射,並允許我們在程序運行過程中查詢獲取相應的狀態和映射信息。但這也意味着我們不能根據一些實時配置高效地建立映射信息。這導致許多限制和問題。
5.0引入了一個新的引導API旨在減輕這些限制和問題,同時允許我們更好的完成整合工作。想要連接更多關於新的引導API配置指南可到hibernate 官網的User Guide部分
在一定的限制上,Configuration配置方法仍然可以使用,不過它的一些方法已被刪除。在新的引導API底層實現部分,Configuration類仍大有作用.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM