程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> 使用Apache OpenJPA開發EJB 3.0應用,第7部分

使用Apache OpenJPA開發EJB 3.0應用,第7部分

編輯:關於JAVA

使用Eclipse Dali開發OpenJPA應用

關於 Eclipse Dali JPA 工具

Dali JPA Tools 是由 Eclipse.org 推出、支持 JPA 項目開發的插件,主要 目標是為用戶開發、編輯 EJB 3.0 中 JPA 實體的映射關系提供可視化工具支持 。Dali 是 Eclipse WTP(Web Tools Platform)工具集中的一部分,這是由 Eclipse.org 提供、支持 Web 應用和 Java EE 應用開發的工具集。

目前 Dali 的最新版本是 1.0,它是 WTP 2.0 的一部分,不提供獨立下載。 Dali 1.0 支持 Eclipse 3.3 版本和 WTP 2.0 版本。本文中所有描述均是針對 Dali 1.0 版本。Dali 還有一個 0.5 版本,它能夠支持 Eclipse 3.2 和 WTP 1.5 版本,Dali 0.5 和 1.0 在功能和使用習慣上並沒有太大的差異,因此可以 作為老版本 Eclipse 和 WTP 用戶的一種選擇。

Dali 工具集中為用戶開發 JPA 應用提供了專門的 JPA 透視圖,主要由 Package Explorer、Data Source Explorer、JPA Structure 和 JPA Details 視 圖組成,Package Explorer 用於管理所有的 JPA 項目,Data Source Explorer 視圖用於管理數據庫聯接,JPA Structure 和 JPA Details 視圖是 JPA 透視圖 最重要的部分,用於管理 Java 對象和數據庫之間的映射關系、實體之間的繼承 、關聯關系等以及實體的主鍵生成策略。

使用 Dali 開發的典型過程

Dali 目前支持從數據庫生成實體的開發過程,即開發者首先創建數據庫結構 ,然後使用 Dali 工具提供的向導根據數據庫表結構生成實體、並使用透視圖和 視圖調整實體主鍵生成策略、實體之間繼承、關聯關系等。這種方式非常適合習 慣於在系統開發過程中首先完成數據庫設計的開發團隊,他們可以基於設計好的 數據庫結構直接生成實體,然後再來做相關的調整。本文將演示這個開發過程。

在 Dali 中還支持從實體生成數據庫表的開發過程,即先使用 Dali 工具創建 實體、然後再使用透視圖和視圖調整實體主鍵生成策略、實體之間繼承、關聯關 系等內容,最後根據這些實體以及關系生成數據庫表結構。不過現在這一功能還 不是十分完善,需要等待 Dali 在新版本中提供更多的特性。

工具下載、安裝

下載 Dali 工具,可以訪問 Eclipse.org 獲取下載鏈接。請讀者根據自己的 Eclipse 版本和相應環境選擇合適的 Dali 版本下載,Dali 1.0 版本需要 Eclipse 3.3 和 WTP 2.0 的支持,而 Dali 0.5 版本可以使用 Eclipse 3.2 和 WTP 1.5 版本。

要運行 Dali 工具,您還需要下載和安裝 JDK 5.0 以上版本,可以訪問 Sun 網站 獲取 JDK 的最新版本。

開發環境

上面的章節中我們簡單介紹了 Dali 的基本信息,下面將會通過一個簡單的例 子來說明如何使用 Dali 完成 OpenJPA 應用的開發。開發環境使用的操作系統和 開發工具如下,如果使用其它的操作系統或者開發工具版本,請根據下面章節中 描述的內容進行相應的調整。

操作系統:Windows XP

Eclipse 版本號:3.3

WTP 版本號:2.0

Dali 版本號:1.0

數據庫:MySQL 5.0

數據庫用戶名 / 密碼:dali/dali

實例中的業務說明

我們假設實際業務中存在名為 Animal 的對象,在某一個應用場景中,我們需 要使用 OpenJPA 框架提供的工具和接口完成 Animal 對象的持久化、屬性修改、 刪除、查找等功能。為了說明的簡單,假設 Animal 對象只有兩個屬性:id 和 name,其中 id 字段代表的是編號(編號由 MySQL 數據庫自動生成),name 屬 性表示名稱。我們可以使用下面的 SQL 語句,在 MySQL 數據庫中初始化數據庫 表。

清單 1. 初始化數據庫表

CREATE TABLE animal (
  id INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
  name VARCHAR(45) NOT NULL,
  PRIMARY KEY (id)
);

使用 Dali 開發 OpenJPA 應用

在本章節中,我們將詳細描述如何使用 Dali 來完成上面這個實際業務需求的 步驟。

連接數據庫

開發 JPA 項目之前,我們需要在工作台中配置到數據庫的連接,Dali 工具將 會使用我們配置好的數據庫連接生成數據庫表結構對應的實體。

數據庫連接的詳細配置過程如下:

打開 Eclipse 開發環境,切換到 JPA 透視圖後,在 Data Source Explorer 視圖中的 Databases 節點上右鍵單擊,選擇“New…”。

圖 1. 新建數據庫連 接

在彈出的數據庫連接類型選擇界面中選擇“SQL Model-JDBC Connection”, 單擊“next”按鈕。

圖 2. 選擇連接類型

在 JDBC 連接基本信息界面中輸入如下信息,並且選中“auto-connect when the wizard is finished or when Data Source Expolorer opens”,單擊 “next”按鈕。

圖 3. 輸入詳細信息

在 JDBC 連接信息框中點擊“select a driver from the drop-down”後面跟 著的“...”按鈕,彈出 JDBC 驅動選擇框。

圖 4. JDBC 驅動選擇框

在 JDBC 選擇框中選中“MySQL -> 5.0”節點,單擊右邊的“Add…”按鈕 。

圖 5. 選擇合適的驅動

在彈出框中選擇“Database -> MySQL -> 5.0 -> MySQL JDBC Driver”,在 Driver Name 後面的文本框中輸入“MySQL-JDBC-Driver”,單擊 “Ok”按鈕。

圖 6. 輸入驅動名

在 JDBC 驅動詳細信息中提供 MySQL 驅動 jar 文件,並且在 Properties 區 設置訪問數據庫的 URL、JDBC 驅動類、用戶名和密碼,單擊“Ok”按鈕。

圖 7. 提供 MySQL 驅動 jar 文件

其它界面上均單擊“Ok”按鈕。

所有動作完成後,Data Source Explorer 視圖中將會出現新創建的數據庫連 接並且已經連接到數據庫,如下圖所示。

圖 8. Data Source Explorer 視圖

創建使用 OpenJPA 的 JPA 項目

數據庫連接完成以後,我們就可以開始開發 JPA 應用了。在下面的步驟中, 我們將創建 JPA 項目並指定由 OpenJPA 實現。

通過菜單“File -> New -> Project…”打開項目類型選擇框。

圖 9. 項目類型選擇框

項目類型選擇框中選擇“JPA -> JPA Project”,單擊“next”按鈕。

圖 10. 項目類型選擇框

在項目基本信息框中輸入項目名稱“Dali-demos”,單擊“next”按鈕。

圖 11. 輸入項目名稱

選中“use implementation library”和“annotated classes must be listed in persistence.xml”,單擊“configure default JPA implementation library”,進入 JPA 實現包的配置界面。選中“create orm.xml”。

圖 12. JPA 實現包的配置界面

單擊“configure user libraries”。

圖 13. 定制用戶庫

單擊“New…”按鈕。

圖 14. 新建用戶庫

輸入“user library name”為“OpenJPA”,選中“System library”。

圖 15. 輸入用戶庫名稱

選中新建的 OpenJPA 節點,單擊“Edit…”按鈕。

圖 16. 編輯用戶庫

將 OpenJPA 安裝包目錄下的 openjpa*.jar 和 persistence-api-1.0.jar 文 件加入到 OpenJPA liberary 中。

圖 17. 添加 OpenJPA 庫文件包

一直單擊“OK”按鈕,回到 JPA 項目配置界面,在“use implementation library”後面的選擇框中選擇前面創建的 OpenJPA 實現。

圖 18. 設置 OpenJPA 實現

單擊“Finish”按鈕,完成 JPA 項目的創建。

項目成功創建後,在 Package Explorer 視圖中,我們可以看到,系統自動為 我們生成了相應的目錄和文件。

圖 19. 生成的目錄和文件

從數據庫生成實體

通過上面的步驟我們已經創建了合適的 JPA 項目,現在我們需要生成 JPA 中 的重要內容 ---- 實體了,Dali 中支持直接從數據庫表生成相應的實體,下面是 詳細的步驟和說明。

在 Dali-Demos 項目上單擊右鍵,在彈出的上下文菜單中選擇“JPA Tools - > Generate Entities”。

圖 20. 生成實體的菜單項

選擇數據庫的 Schema 為“dali”。

圖 21. 選擇數據庫 Schema

輸入實體類所在的包“com.levainservice”,然後選擇需要生成實體的數據 庫表。

圖 22. 選擇數據庫表

單擊“Finish”按鈕就可以完成實體的創建工作。

Dali 將會自動創建實體類 Animal,並且將它們注冊到 persistence.xml 文 件中。

生成的 Animal 實體類的主體內容如下:

@Entity
public class Animal implements Serializable {
   @Id
   private Object id;
   private String name;
}

修改後的 persistence.xml 文件的內容如下,其中的粗體部分是本步驟中由 Dali 生成的。

<persistence version="1.0"
   xmlns="http://java.sun.com/xml/ns/persistence"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http://java.sun.com/xml/ns/persistence
     http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd">
   <persistence-unit name="Dali-demos">
     <mapping-file>META-INF/orm.xml</mapping-file>
     <class>com.levainservice.Animal</class>
   </persistence-unit>
</persistence>

調整實體類

通過上面的步驟,我們已經生成了實體,但是,向導生成的實體並不能完全滿 足要求,我們仍然需要根據實際情況進行調整。演示實例中 Animal 實體類的 id 字段是由數據庫自動生成的,我們需要使用 Dali 提供的界面進行調整,調整步 驟如下:

進入 JPA 透視圖,從左邊的的 Package Explorer 視圖中雙擊 Animal.java 打開 Animal 實體類編輯窗口。

將 Animal 實體的 id 字段從 Object 類型修改為 int 類型;

在 JPA Structure 視圖中選擇“id”節點,在 JPA Details 視圖中勾中 “Primary Key Generation”,在 Strategy 下拉框中選擇“Identity”。

圖 23. 調整實體類

至此,我們已經使用 Dali 生成了 OpenJPA 運行所需要的最重要的部分 — 實體,我們可以編寫測試代碼來訪問新創建的實體了,如何編寫測試代碼來訪問 新創建的實體請參考本系列文章 第 2 部分:開發第一個 Open JPA 應用 中對應 部分的內容。您還可以 下載 本文的示例代碼,其中也包括了訪問 Animal 實體 的代碼,可供參考。

總結

Dali 是由 Eclipse.org 提供的開發 JPA 應用的可視化編輯工具,它是 Eclipse 的一個插件,屬於 WTP 平台的一部分,使用 Dali 工具可以直接從數據 庫生成實體,隨後開發者可以使用 Dali 提供的 JPA Structure 和 JPA Detail 視圖調整實體和數據庫的映射關系以及實體之間的關系,使用 Dali 工具也可以 由開發者先創建實體類,然後生成創建對應數據庫表的 SQL 語句。

本文中作者通過一個簡單的例子,詳細地說明了使用 Dali 開發 OpenJPA 應 用所需要完成的設置工作,同時演示了 Dali 提供的與 JPA 開發相關的向導、透 視圖、視圖生成、調整實體的詳細使用過程。

原文: http://www.ibm.com/developerworks/cn/java/j-lo-openjpa7/index.html

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved