首頁 Java java教程 Java Hibernate 框架的架構是什麼?

Java Hibernate 框架的架構是什麼?

Apr 17, 2024 pm 03:27 PM
java

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

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
2 週前 By 尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
2 週前 By 尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱門文章標籤

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

Java 中的平方根 Java 中的平方根 Aug 30, 2024 pm 04:26 PM

Java 中的平方根

Java 中的完美數 Java 中的完美數 Aug 30, 2024 pm 04:28 PM

Java 中的完美數

Java 中的隨機數產生器 Java 中的隨機數產生器 Aug 30, 2024 pm 04:27 PM

Java 中的隨機數產生器

Java 中的阿姆斯壯數 Java 中的阿姆斯壯數 Aug 30, 2024 pm 04:26 PM

Java 中的阿姆斯壯數

Java中的Weka Java中的Weka Aug 30, 2024 pm 04:28 PM

Java中的Weka

Java 中的史密斯數 Java 中的史密斯數 Aug 30, 2024 pm 04:28 PM

Java 中的史密斯數

Java Spring 面試題 Java Spring 面試題 Aug 30, 2024 pm 04:29 PM

Java Spring 面試題

突破或從Java 8流返回? 突破或從Java 8流返回? Feb 07, 2025 pm 12:09 PM

突破或從Java 8流返回?

See all articles