Hibernate4 獲取SessionFactory 的方式


這些年一直都在做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 }

 

 


免責聲明!

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



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