更新時間:2022-10-25 10:12:39 來源:動力節點 瀏覽1891次
相信大家對持久化對象的概念已經有所了解,數據持久性是應用程序從非易失性存儲系統中持久化和檢索信息的一種方式。由于需要訪問關系數據庫,持久性對于企業應用程序至關重要。為此環境開發的應用程序必須自己管理持久性或使用第三方解決方案來處理具有持久性的數據庫更新和檢索。自 EJB 3.0 規范以來,Java™ Persistence API (JPA) 提供了一種用于管理持久性和對象關系映射和函數的機制。
JPA 規范在內部定義了對象關系映射,而不是依賴于供應商特定的映射實現。JPA 基于適用于 Java Enterprise Edition (Java EE) 環境的 Java 編程模型,但 JPA 可以在 Java SE 環境中運行以測試應用程序功能。
JPA 代表了持久性編程模型的簡化。JPA 規范明確定義了對象關系映射,而不是依賴于供應商特定的映射實現。JPA 通過使用注釋或 XML 將對象映射到數據庫的一個或多個表中來標準化對象關系映射的重要任務。進一步簡化持久化編程模型:
EntityManager API 可以持久化、更新、檢索或從數據庫中刪除對象。
EntityManager API 和對象關系映射元數據處理大多數數據庫操作,而無需您編寫 JDBC 或 SQL 代碼來維護持久性。
JPA 提供了一種查詢語言,擴展了獨立的 EJB 查詢語言(也稱為 JPQL),您可以使用它來檢索對象,而無需編寫特定于您正在使用的數據庫的 SQL 查詢。
JPA 旨在在 Java Enterprise Edition (Java EE) 容器的內部和外部運行。當您在容器內運行 JPA 時,應用程序可以使用容器來管理持久性上下文。如果沒有容器來管理 JPA,則應用程序必須自己處理持久性上下文管理。為容器管理的持久性設計的應用程序不需要太多的代碼實現來處理持久性,但這些應用程序不能在容器之外使用。管理自己的持久性的應用程序可以在容器環境或 Java SE 環境中運行。
支持 EJB 3.x 編程模型的 Java EE 容器必須支持 JPA 實現,也稱為持久性提供程序。JPA 持久性提供程序使用以下元素在 EJB 3.x 環境中實現更輕松的持久性管理:
持久化單元
定義一個完整的對象-關系模型映射 Java 類(實體 + 支持結構)與關系數據庫。EntityManagerFactory 使用此數據創建可以通過 EntityManager 訪問的持久性上下文。
實體管理器工廠
用于為數據庫交互創建 EntityManager。應用程序服務器容器通常提供此功能,但如果您使用 JPA 應用程序管理的持久性,則需要 EntityManagerFactory。EntityManagerFactory 的實例表示持久性上下文。
持久性上下文
定義應用程序當前正在操作的活動實例集。您可以手動或通過注入創建持久性上下文。
實體管理器
維護應用程序正在使用的實體對象的活動集合的資源管理器。EntityManager 處理對象關系映射的數據庫交互和元數據。EntityManager 的一個實例代表一個 Persistence 上下文。容器中的應用程序可以通過注入應用程序或在 Java 組件名稱空間中查找來獲取 EntityManager。如果應用程序管理其持久性,則從 EntityManagerFactory 獲得 EntityManager。
實體對象
一個簡單的 Java 類,它以最簡單的形式表示數據庫表中的一行。實體對象可以是具體類或Java抽象類。它們通過使用屬性或字段來維護狀態。
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習