
- Hibernate 教程
- Hibernate - 首頁
- ORM - 概述
- Hibernate - 概述
- Hibernate - 架構
- Hibernate - 環境
- Hibernate - 配置
- Hibernate - 會話
- Hibernate - 持久化類
- Hibernate - 對映檔案
- Hibernate - 對映型別
- Hibernate - 示例
- Hibernate - O/R 對映
- Hibernate - 級聯型別
- Hibernate - 註解
- Hibernate - 查詢語言
- Hibernate - 條件查詢
- Hibernate - 原生 SQL
- Hibernate - 快取
- Hibernate - 實體生命週期
- Hibernate - 批次處理
- Hibernate - 攔截器
- Hibernate - ID 生成器
- Hibernate - 儲存圖片
- Hibernate - log4j 整合
- Hibernate - Spring 整合
- Hibernate - Struts 2 整合
- Hibernate - Web 應用
- 對映表示例
- Hibernate - 表繼承策略(每個層次結構一張表)
- Hibernate - 表繼承策略(每個具體類一張表)
- Hibernate - 表繼承策略(每個子類一張表)
- Hibernate 有用資源
- Hibernate - 問答
- Hibernate - 快速指南
- Hibernate - 有用資源
- Hibernate - 討論
Hibernate - 架構
Hibernate 具有分層架構,這有助於使用者無需瞭解底層 API 即可進行操作。Hibernate 利用資料庫和配置資料為應用程式提供持久化服務(以及持久化物件)。
以下是 Hibernate 應用程式架構的非常高級別的檢視。

以下是 Hibernate 應用程式架構及其重要核心類的詳細檢視。

Hibernate 使用各種現有的 Java API,例如 JDBC、Java 事務 API (JTA) 和 Java 命名和目錄介面 (JNDI)。JDBC 提供了對關係資料庫常用功能的基本抽象級別,允許 Hibernate 支援幾乎任何具有 JDBC 驅動程式的資料庫。JNDI 和 JTA 允許 Hibernate 整合到 J2EE 應用程式伺服器中。
以下部分簡要介紹了 Hibernate 應用程式架構中涉及的每個類物件。
Configuration 物件
Configuration 物件是您在任何 Hibernate 應用程式中建立的第一個 Hibernate 物件。通常在應用程式初始化期間僅建立一次。它表示 Hibernate 所需的配置檔案或屬性檔案。
Configuration 物件提供兩個關鍵元件:
資料庫連線 - 透過 Hibernate 支援的一個或多個配置檔案處理。這些檔案是 hibernate.properties 和 hibernate.cfg.xml。
類對映設定 - 此元件建立 Java 類和資料庫表之間的連線。
SessionFactory 物件
SessionFactory 物件使用提供的配置檔案為應用程式配置 Hibernate,並允許例項化 Session 物件。SessionFactory 是一個執行緒安全的物件,並被應用程式的所有執行緒使用。
SessionFactory 是一個重量級物件;它通常在應用程式啟動時建立並保留以供以後使用。每個使用單獨配置檔案的資料庫都需要一個 SessionFactory 物件。因此,如果您使用多個數據庫,則必須建立多個 SessionFactory 物件。
Session 物件
Session 用於獲取與資料庫的物理連線。Session 物件是輕量級的,旨在每次需要與資料庫互動時進行例項化。持久化物件是透過 Session 物件儲存和檢索的。
Session 物件不應長時間保持開啟狀態,因為它們通常不是執行緒安全的,並且應根據需要建立和銷燬它們。
Transaction 物件
Transaction 表示與資料庫的工作單元,大多數 RDBMS 支援事務功能。Hibernate 中的事務由底層事務管理器和事務(來自 JDBC 或 JTA)處理。
這是一個可選物件,Hibernate 應用程式可以選擇不使用此介面,而是在其自己的應用程式程式碼中管理事務。
StandardServiceRegistry ssr = new StandardServiceRegistryBuilder().configure("hibernate.cfg.xml").build(); Metadata meta = new MetadataSources(ssr).getMetadataBuilder().build(); // Create the SessionFactory Instance SessionFactory factory = meta.getSessionFactoryBuilder().build(); // Create the session Session session = factory.openSession(); // Create the transaction Transaction t = session.beginTransaction();
Query 物件
Query 物件使用 SQL 或 Hibernate 查詢語言 (HQL) 字串從資料庫檢索資料並建立物件。Query 例項用於繫結查詢引數、限制查詢返回的結果數,最後執行查詢。
Criteria 物件
Criteria 物件用於建立和執行面向物件的條件查詢以檢索物件。