Hibernate 初學者教程
已發表: 2022-09-26開源 Hibernate 是一個免費的 OOP Java 框架,用於 Web 應用程序,用於將面向對象的域模型與關係數據庫進行映射。
可以使用 HQL 和 SQL 來查詢數據庫並啟用健壯的對象關係映射。 但是,Java 中的 ORM 映射實現使用 Hibernate 進行了簡化,從而顯著降低了應用程序的複雜性,並且有利於對 SQL 有基本了解的人。
查看我們與軟件開發相關的免費課程。
探索我們的軟件開發免費課程
雲計算基礎 | 從零開始的 JavaScript 基礎 | 數據結構和算法 |
區塊鏈技術 | 初學者反應 | 核心 Java 基礎 |
爪哇 | 適合初學者的 Node.js | 高級 JavaScript |
休眠的架構
Hibernate 配置通常存儲在屬性部分或 hibernate.cfg.xml 文件中。 搜索 Java 配置時,查找標有註解 @Configuration 的類。
要開始使用 Java 應用程序和數據庫,請從會話工廠開始。 該對象表示應用程序的 Java 類型和 SQL 數據庫之間的整個映射集合。
會話工廠
任何用戶應用程序都可以通過聯繫會話工廠來請求會話對象。 會話工廠使用文件中包含的配置信息來創建會話對象。 不同時刻的應用程序和數據庫交互都包含在一個會話中,一個會話類代表了這一點。
詢問
應用程序可以使用查詢語言在數據庫中查詢一個或多個存儲項目。 Hibernate 提供了多種方法來查詢數據庫,包括 NamedQuery 和 Criteria API。
一級緩存
Hibernate Session對像在一級與數據庫通信所使用的緩存稱為一級緩存,也稱為會話緩存。 它負責緩存當前會話中的項目。 從 Session 對像到數據庫的每個請求都必須經過一級緩存或會話緩存才能到達數據庫。 因此,必須注意一級緩存仍然可以被會話對象訪問,直到它不再處於活動狀態。
交易
事務允許建立數據一致性,並在出現任何問題時回滾。
持久對象
持久對像是傳統的 Java 對象 (POJO),由 Hibernate 框架作為鏈接表中的行保存在數據庫中。 Hibernate 配置文件要么配置這些對象,要么用 @Entity 註釋標記它們。
二級緩存
二級緩存在多個會話中跟踪事物。 啟用並提供緩存提供程序以使用二級緩存。 例如,EhCache 是許多應用程序中流行的二級緩存提供程序。
從世界頂級大學在線學習軟件開發課程。 獲得行政 PG 課程、高級證書課程或碩士課程,以加快您的職業生涯。
探索我們流行的軟件工程課程
LJMU & IIITB 計算機科學碩士 | 加州理工學院 CTME 網絡安全證書課程 |
全棧開發訓練營 | 區塊鏈中的 PG 程序 |
全棧開發中的執行 PG 計劃 | |
在下面查看我們的所有課程 | |
軟件工程課程 |
Hibernate 框架的主要特徵
Hibernate 是一個 Java 域對象映射框架,旨在管理數據庫表。 該框架使用 Java 對象而不是 SQL 語句簡化了對數據庫項的處理。 此外,處理事務管理、自動創建主鍵、管理數據庫連接和相關實現有助於開發過程。
JPA 提供者 Hibernate 支持 Java Persistence API (JPA) 標準。 它是用於訪問、存儲和管理數據的標準的集合。 可以進一步利用 Java 對象的優勢並將其與關係數據庫實體連接起來,以確保完全支持 JPA。
高性能和可擴展性
雖然 Hibernate 可以在任何環境中發展,但它提供了廣泛的性能增強功能,例如樂觀鎖定、延遲初始化和其他幾種技術。
跟上很簡單
由於 Hibernate 不需要自定義數據庫結構或屬性,因此管理起來很困難。 它在系統啟動期間創建 SQL。 但是,與 JDBC 相比,它更易於維護。
AnnotationConfiguration、ServiceRegistryBuilder 等類在以前的 Hibernate 版本中已被迅速棄用。
急需的軟件開發技能
JavaScript 課程 | 核心 Java 課程 | 數據結構課程 |
Node.js 課程 | SQL 課程 | 全棧開發課程 |
NFT 課程 | DevOps 課程 | 大數據課程 |
React.js 課程 | 網絡安全課程 | 雲計算課程 |
數據庫設計課程 | Python 課程 | 加密貨幣課程 |
實體、平等和身份的概念
Hibernate 提供了額外的概念來比較對像或特徵以滿足精確的業務規則。 除了在 Java 核心中檢查相等性的現有知識之外,Hibernate 概念對於映射同樣重要。
1. Hibernate Entity之間的關聯映射
當兩個實體以單向或雙向的方式連接和引用時,使用 JPA 註釋對 java 類進行註釋並將它們變成永久實體。 然而,首先,在 Hibernate 實體之間生成引用之前掌握一些基本概念是至關重要的。
2.實體/持久性是兩個不同的東西
Hibernate 映射的對象實例具有以下四種狀態之一:暫時的、永久的、分離的或已刪除的,具體取決於所討論的對象實例狀態。
3. Hibernate 和 JPA 中的級聯類型
“CascadeType”屬性用於實體中以啟用級聯和反向效果。 可通過 CascadeType 訪問多種類型的級聯選擇。
閱讀我們與軟件開發相關的熱門文章
如何在 Java 中實現數據抽象? | Java中的內部類是什麼? | Java 標識符:定義、語法和示例 |
通過示例了解 OOPS 中的封裝 | C 中的命令行參數解釋 | 2022 年雲計算的 10 大特點和特點 |
Java 中的多態性:概念、類型、特徵和示例 | Java 中的包以及如何使用它們? | Git 初學者教程:從零開始學習 Git |
Hibernate 註釋與映射的優勢
在內聯註釋之前,創建 Hibernate 映射的唯一方法是 XML 文件。 儘管 Hibernate 和第三方項目的不同工具支持從 Java 源自動生成映射,但情況並非如此。
註釋是最新定義的映射,但不是最有效的映射。
以下是 Hibernate(或更準確地說,JPA)註解的一些優點。
Hibernate Query Language [HQL] 是 Hibernate 的一種查詢語言
HQL 與面向對象的查詢語言 SQL 有相似之處。 它對永久對象而不是表和列的操作展示了強大查詢語言的功能。
JPQL 或 Java 持久性查詢語言是一個超集。 因此,一個有效的 JPQL 查詢被認為是一個好的 HQL 查詢。 但是,並非所有有效的 HQL 查詢都是有效的 JPQL 查詢,反之亦然。
查詢休眠條件
使用 Criteria Query API,可以在 Java 中構建嵌套的結構化查詢表達式,從而實現 HQL 或 SQL 等查詢語言無法實現的編譯時語法驗證。 除了按示例查詢 (QBE) 功能外,Criteria API 還包含其他功能。
例如,提供具有所需特徵的對象實例而不是逐步解釋搜索的組件可能會節省時間和精力。 它還包含用於投影和聚合的技術,例如 count 方法 ()。
Hibernate EhCache 的配置
ORM 框架提供的緩存功能允許用戶擁有快速運行的 Web 應用程序,同時允許框架減少對單個事務在數據庫中進行的查詢。 緩存對用戶和框架都有幫助。 Hibernate 在層次結構的第一級和第二級擴展緩存。
結論
Hibernate 軟件被認為是適用於所有 Java 的功能強大的框架。 在這個 Hibernate 教程中,我們介紹了使用 Hibernate 的基礎知識。
如果您想深入了解 Hibernate 框架並了解與 Spring 3 框架集成所產生的基本端到端應用程序流程,我們建議您加入upGrad 的全棧開發執行 PG 計劃。
為期 13 個月的課程專為希望在計算機科學基礎、軟件開發運營、構建可擴展網站、後端 API 等方面打下基礎的軟件開發人員、IT 專業人員、工程師、分析師、技術支持專業人員和應屆生而設計。
該計劃包括 10 多種編程工具和語言、7 多種案例研究和項目、新兵訓練營以及數據科學和機器學習的訪問權限。
不要等待。 今天就預訂座位!
如何在 Hibernate 框架中創建 SessionFactory?
任何用戶應用程序都可以通過聯繫會話工廠來請求會話對象。 會話工廠使用文件中的配置信息來正確創建會話對象。
如何配置 Hibernate 連接池和緩存?
默認情況下,Hibernate 使用 JDBC 連接與數據庫系統進行通信。 但是,創建這些連接是耗時、昂貴的,並且可能是 Hibernate 在典型使用場景中將執行的最昂貴的單個活動。 鑑於 JDBC 連接管理的高成本,您可以使用連接池,它可以提前建立關係。
什麼是 Java 中的持久類?
任何遵循面向對象概念(如繼承和多態)的類都可能是 Java 應用程序中的持久類。