位置:首頁 > Java技術 > hibernate > Hibernate架構

Hibernate架構

Hibernate架構是分層的,隔離的不必知道底層API。 Hibernate中使用數據庫和配置信息來為應用程序提供持久化服務(以及持久的對象)。

下麵是Hibernate應用程序體係結構的一個非常高的水平視圖。

Hibernate High Level View

下麵是Hibernate的應用架構與一些重要的核心課程的詳細視圖。

Hibernate Architecture

Hibernate使用各種現有的Java API,如JDBC,Java事務API(JTA)和Java命名和目錄接口(JNDI)。 JDBC提供了常見的關係數據庫功能的抽象的一個基本水平,使具有JDBC驅動程序,Hibernate的支持幾乎任何數據庫。 JNDI和JTA允許Hibernate與J2EE應用服務器進行集成。

以下部分列出了每個參與Hibernate應用程序體係結構的類的對象的簡要說明。

Configuration 對象:

Configuration對象是你在任何Hibernate應用程序中創建並通常在應用程序初始化創建一次,第一個Hibernate的對象。它代表了Hibernate所需的配置或屬性文件。 Configuration對象提供了兩個按鍵組成部分:

  • 數據庫連接:這是通過Hibernate支持的一個或多個配置文件來處理。這些文件是:hibernate.properties和hibernate.cfg.xml。

  • 類映射設置
    此組件創建Java類和數據庫表之間的連接

SessionFactory 對象:

Configuration對象用於創建一個SessionFactory對象,它反過來可以配置Hibernate的使用提供的配置文件的應用程序,並允許一個Session對象被實例化。通過SessionFactory是線程安全的對象和使用的應用程序的所有線程。

通過SessionFactory是重量級的對象,因此通常它被應用程序時創建的啟動和保持以備後用。將使用一個單獨的配置文件需要每個數據庫都有一個SessionFactory對象。所以,如果正在使用多個數據庫,那麼就需要創建多個SessionFactory的對象。

Session 對象:

Session對象用於獲取與數據庫的物理連接。 Session對象是重量輕,設計了一個互動是需要與數據庫每次被實例化。持久化對象被保存,並通過一個Session對象中檢索。

會話中的對象不應該保持開放很長一段時間,因為他們通常不被線程安全的,應該被創建並根據需要銷毀他們。

Transaction 對象:

事務代表一個工作單元與數據庫和大部分RDBMS支持事務功能。在Hibernate事務是由一個基本的事務管理器和事務(從JDBC或JTA)來處理。

這是一個可選的對象和Hibernate應用程序可以選擇不使用這個接口,而不是在他們自己的應用程序代碼管理事務。

Query 對象:

查詢對象使用SQL或Hibernate查詢語言(HQL)字符串從數據庫中檢索數據並創建對象。一個查詢實例是用來綁定查詢參數,限製查詢返回的結果數量,並最終執行查詢。

Criteria 對象:

Criteria對象用於創建和執行麵向對象的條件查詢來檢索對象。