hibernate4時,我們采用以下方式獲取會話工廠:
// 1. 解析我們在hibernate.cfg.xml中的配置 Configuration configuration = new Configuration().configure("hibernate.cfg.xml"); // 2. 創建服務注冊類,進一步注冊初始化我們配置文件中的屬性 ServiceRegistry serviceRegistry = new ServiceRegistryBuilder().applySettings(configuration.getProperties()).buildServiceRegistry(); // 3. 創建我們的數據庫訪問會話工廠 SessionFactory sessionFactory = configuration.buildSessionFactory(serviceRegistry);
但在hibernate5中,采用以下方式獲取:
//1. 配置類型安全的准服務注冊類,這是當前應用的單例對象,不作修改,所以聲明為final //在configure("cfg/hibernate.cfg.xml")方法中,如果不指定資源路徑,默認在類路徑下尋找名為hibernate.cfg.xml的文件 final StandardServiceRegistry registry = new StandardServiceRegistryBuilder().configure("hibernate.cfg.xml").build(); //2. 根據服務注冊類創建一個元數據資源集,同時構建元數據並生成應用一般唯一的的session工廠 SessionFactory sessionFactory = new MetadataSources(registry).buildMetadata().buildSessionFactory();