Hibernate的核心API

一.  Hibernate的核心API有哪些?


Hibernate的API一共有6個,分別爲:Session、SessionFactory、Transaction、Query、Criteria和Configuration。
通過這些接口,可以對持久化對象進行存取、事務控制。

二. Configuration類

Configuration 類的作用是對Hibernate 進行配置,以及對它進行啓動。

在Hibernate 的啓動過程中,Configuration 類的實例首先定位映射文檔的位置,讀取這些配置,然後創建一個SessionFactory對象。

雖然Configuration 類在整個Hibernate 項目中只扮演着一個很小的角色,但它是啓動hibernate 時所遇到的第一個對象。


// 加載配置文件
Configuration config = new Configuration();
config.configure();// 默認加載src下的hibernate.cfg.xml
// 創建SessionFactory對象
SessionFactory factory = config.buildSessionFactory();

三. SessionFactory接口

SessionFactory接口負責初始化Hibernate。它充當數據存儲源的代理,並負責創建Session對象。這裏用到了工廠模式。

需要注意的是SessionFactory並不是輕量級的,因爲一般情況下,一個項目通常只需要一個SessionFactory就夠,

當需要操作多個數據庫時,可以爲每個數據庫指定一個SessionFactory。


// 創建Session對象
Session session = factory.openSession();

四. Session接口

Session接口負責執行被持久化對象的crud操作(CRUD的任務是完成與數據庫的交流,包含了很多常見的SQL語句)。

但需要注意的是Session對象是非線程安全的。

同時,Hibernate的session不同於JSP應用中的HttpSession。這裏當使用session這個術語時,其實指的是Hibernate中的session,而以後會將HttpSession對象稱爲用戶session。


// 開啓事務
Transaction tr = session.beginTransaction();

五. Transaction接口

Transaction 接口是一個可選的API,可以選擇不使用這個接口,取而代之的是Hibernate 的設計者自己寫的底層事務處理代碼。

Transaction 接口是對實際事務實現的一個抽象,這些實現包括JDBC的事務、JTA 中的UserTransaction、甚至可以是CORBA 事務。

之所以這樣設計是能讓開發者能夠使用一個統一事務的操作界面,使得自己的項目可以在不同的環境和容器之間方便地移植。


// 提交事務
tr.commit();

六. Query接口

Query接口讓你方便地對數據庫及持久對象進行查詢,它可以有兩種表達方式:HQL語言或本地數據庫的SQL語句。

Query經常被用來綁定查詢參數、限制查詢記錄數量,並最終執行查詢操作。

七. Criteria接口

Criteria接口與Query接口非常類似,允許創建並執行面向對象的標準化查詢。

值得注意的是Criteria接口也是輕量級的,它不能在Session之外使用。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章