當前位置:成語大全網 - 書法字典 - 理解JPA,壹種對象的數據持久化方案什麽是JPA?

理解JPA,壹種對象的數據持久化方案什麽是JPA?

不管妳喜不喜歡,數據是任何應用不可或缺的壹部分,尤其是那些面向對象的應用。JAVA程序員在處理數據持久層時,傳統的方式是編寫壹些復雜的SQL查詢語句,但是隨著應用規模的不斷增長,這些內容會讓程序變得難以管理。如果我們能以面向對象的方式處理這些查詢,並充分利用封裝、抽象、繼承和多態的特性,那該多好啊。

事實上,JAVA社區已經開發了許多面向對象的方法來處理數據持久性:EJB、JDO、Hibernate和Toplink都是解決這個問題的非常好的方案。另壹方面,JPA是java EE 5指定的標準持久性應用程序接口。JPA規範最初是作為JSR 220:EJB 3.0規範的壹部分,用來簡化EJB實體bean的編程模型。雖然在Java EE 5.0中與實體bean相關,但是JPA也可以在容器外的java SE環境中使用。

在本文中,您將看到借助JPA中的註釋,以面向對象的方式處理數據持久性是多麽簡單和優雅。本文的讀者是JPA的初學者。同時,他們需要掌握壹些基本的關系數據庫概念,熟悉JAVA 5中的註釋。JPA需要JAVA 5或更高版本,因為它使用了JAVA中的很多新特性,比如註釋和泛型。

OpenJPA和示例程序

在本文中,我們將使用OpenJPA來演示,它是Apache組織提供的壹個JPA規範的具體實現。我選擇OpenJPA而不是其他廠商的產品,主要是因為它集成在Weblogic、WebSphere、Geronimo等應用服務器中。在撰寫本文時,OpenJPA的最新版本是1.0.1,可以通過參考資料部分的鏈接下載。如果您想使用其他JPA實現,那麽顯然您必須先閱讀相關文檔。

在本文的剩余部分,我將通過壹個例子向您介紹JPA中的各種概念。這個例子基於壹家名為XYZ的超市,它既有網上商店又有實體零售店。首先,您將學習如何使用JPA來構建客戶模型。在後面的部分,您將學習如何通過對象繼承來擴展CRUD操作。

本文中的代碼包包括實體偵聽器和本文中討論的三種繼承類型(單個表、連接和每個類壹個表)的代碼。

JPA:怎麽用?

為了實現壹個JPA兼容的程序,妳需要以下三樣東西:

實體類

persistence.xml文件。

用於插入、更新或查找實體的函數類。

JPA只能用來處理數據持久化。讓我們來看看如何通過JPA設計數據存儲方法。假設您已經有壹個客戶表,如表1所示。