2008年7月22日 星期二

JPA 應用實例 <1>

Java Persistence API 基本概念

JPA是EJB 3.0規格當中的要點之一,JPA 規格主要定義了物件資料儲存到永續層的標準,其中包括了類似 Hibernate 的 OR Mapping 與資料存取核心,由於 JDK 5.0 引入了 Annotations 的概念,因此,OR Mapping 的方是自然也提供了 XML 定義檔之外的另一個選項;

JPA 同時擴充了資料存取核心(Core),除了簡化資料增、刪、改、查的過程外,更重要的是,透過 Entity Manager 可以讓記憶體當中的資料與永續層資料之間的同步維護更加容易。

接下來的案例將逐步介紹開發 JPA 程式的過程,希望藉由案例的演練,能引發大夥對 JPA 的興趣,同時帶領各位進入 JPA 的聖殿。

前置作業

由於本案例主要是採用 hibernate 提供的 Entity Manager進行開發,因此,需要請各位自行到 hibernate 網站下載相關的 JAR 檔案
網址:http://www.hibernate.org/
需要下載的元件:
1. Hibernate Core
2. Hibernate EntityManager
3. Hibernate Annotations

本案例存取的資料庫主要為 MS-SQL Server 2005,因此,需要請各位相對應的 JDBC Driver,本案例採用 jTDS JDBC Driver
網址:http://jtds.sourceforge.net/

建立資料庫-請先行進入 MS-SQL Server 2005 建立本次實務案例需要用到的資料庫,並新增相對應的登入帳號與資料庫存取權限,以下是基本設定參數:
1. 資料庫名稱:JPADB
2. 建立登入帳號:jpauser,建立帳號請同時取消勾選項對應的密碼原則,並請設定使用者對應的資料庫為 JPADB同時擁有 db_owner 的權限。

註:因為本案例主要是用來說明與示範用途,因此,建立帳號時給予比較大的權限,關於 MS-SQL 2005的權限管理細節,請自行閱讀相關的文章。

案例 Domain Model

上圖是本次JPA即將要時做的基本模型,從模型當中,我們可以知道有產品 (ProductItem) 與商品類型 (Category) 這兩個 Class,產品與商品類型之間有著多對多的關係,也就是說,產品可以歸屬到多種商品類型,而單一商品類型也可以同時包含多種產品。

有了以上基本認識後,本案例將從維護(增刪改查)產品或者商品類型的基本作業逐步進展到整體維護的JPA應用方法;


第一步:建立 JPA 專案

1. 使用 Eclipse 建立新的專案,[File]/[New]/[Project]
2. 選定 JPA Project之後按[下一步]鍵。
3. 輸入專案名稱,按[下一步]鍵。
4. 選定採用的元件版本,其中JDK 務必選擇 5.0 以上的版本
5. 於 Connection 下拉選單中選擇或自行設定資料庫連線方式,若要自行設定資料庫連線,請點選 [Add connection…] 超連結 。

  • 選擇[Generic JDBC Connection],按[下一步]鍵
  • 輸入JPA DB Connection 後,按[下一步]鍵
  • 建立並輸入資料庫連線資訊
    URL:jdbc:jtds:sqlserver://localhost:1433/JPADB
    註一:請參閱前置作業章節找到對應的資料庫連線資訊
    註二:相對應的 JDBC Driver 請先下載並存放到適當的路徑底下。
  • 設定資料輸入後,請點選[Test Connection]鍵進行資料庫連線測試,待測試通過後才按[Finish]鍵
6. 於 JPA implementation library下拉選單中選擇或新增使用者自訂的 JPA 程式庫。若要自行設定 JPA 程式庫,請點選 [Configure default JPA implementation library…] 超連結 。
7. 設定完成後,點選[Finish]鍵即完成JPA 專案建立。剛建立的 JPA 專案會包括下圖當中的程式庫與目錄,其中 \src\META_INF 目錄底下會產生persistence.xml 與 orm.xml 這兩個設定檔,這兩個設定檔案是JPA 的重要設定,將於後續章節逐一說明。

待續...JPA 應用實例 <2>

2 則留言:

pogi 提到...

請問若出現 Table XXX cannot br resolved. 的錯誤訊息,該如何解決呢?

玩大衛 提到...

沒import吧