首頁  >  文章  >  Java  >  Java Hibernate 框架的架構是什麼?

Java Hibernate 框架的架構是什麼?

WBOY
WBOY原創
2024-04-17 15:27:02399瀏覽

Hibernate 作為一個 ORM 框架,提供了一個多層架構,包括 SessionFactory、Session、Transaction、Query、Criteria 和 Entity Manager。在實戰中,使用Hibernate 可以執行CRUD 操作,透過SessionFactory 建立與資料庫的連接,透過Session 執行操作,透過Transaction 管理更改,透過Query 進行查詢,透過Criteria 建構複雜查詢條件,也可以使用Entity Manager 進行持久化和查詢。

Java Hibernate 框架的架构是什么?

Java Hibernate 框架的架構

概述

Hibernate 是一款流行的Java 物件關係映射(ORM)框架,它提供了一種將Java 物件對應到資料庫表的方式。它具有多層的架構,如下所示:

架構

#1. SessionFactory

  • 代表資料庫連接池的工廠類別。
  • 負責建立與資料庫的連線和會話。

2. Session

  • 表示與資料庫的單一會話。
  • 提供對資料庫的操作和查詢。

3. Transaction

  • 抽象的交易單元,用於提交或回滾變更。
  • Session 控制。

4. Query

  • 表示資料庫查詢。
  • 用來檢索和修改資料庫中的資料。

5. Criteria

  • 一種高階查詢 API,用於建立複雜的查詢條件。
  • 基於 JPA (Java Persistence API) 標準。

6. Entity Manager

  • 另一個可選的進階 API。
  • 提供持久化和查詢功能。

實戰案例

在以下範例中,我們將使用Hibernate 框架執行基本的CRUD(建立、讀取、更新、刪除)操作:

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;

public class HibernateExample {

    public static void main(String[] args) {
        // 创建一个 Configuration 对象并配置 Hibernate
        Configuration configuration = new Configuration();
        configuration.configure("hibernate.cfg.xml");

        // 创建一个 SessionFactory
        SessionFactory sessionFactory = configuration.buildSessionFactory();

        // 打开一个 Session
        Session session = sessionFactory.openSession();

        // 开始一个 Transaction
        Transaction transaction = session.beginTransaction();

        // 创建一个实体对象
        Employee employee = new Employee("John Doe");

        // 保存实体对象
        session.save(employee);

        // 提交 Transaction
        transaction.commit();

        // 关闭 Session
        session.close();
    }
}

在這個範例中,我們建立了一個Configuration 物件來設定Hibernate,建立了一個SessionFactory,然後開啟了與資料庫的Session。我們開始了一個 Transaction,然後儲存了一個 Employee 實體。最後,提交了 Transaction 並關閉了 Session

以上是Java Hibernate 框架的架構是什麼?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn