練習 1.3:將 Entity Bean 新增至類別圖解中

開始之前,您必須先完成練習 1.2:準備工作區

練習 1.3 會帶您逐步從 UML 類別圖解建立 Entity Bean。 在這個模組中,您會執行下列作業:

Bean 的說明

您將在這個實務中建立兩個 Entity Bean:Author 和 Book。Author Bean 將代表一份資料庫表格,也稱為 AUTHOR。 這個 Bean 會包含代表作者的欄位:ID、name、age 和 gender。Bean 的這些欄位會直接對映至 AUTHOR 表格中的直欄。

Book Bean 代表書籍。 它的欄位包括 ID 和 title。Book Bean 的對應資料會儲存在 BOOK 表格中。

建立 Author Bean

請遵循下列步驟來建立 Author Bean:

  1. 在 UML 類別圖解的右側找到選用區的 EJB 抽屜。
  2. 如果 EJB 抽屜還沒有開啟,請按一下它,將它打開。 這時清單中間會出現 CMP 2.x Entity bean
  3. 按一下 CMP 2.x Entity Bean 右側的箭頭(下拉功能表圖示)可顯示其他選項。 另一個列出的選項是 CMP 1.x Entity Bean
  4. 選取 CMP 2.x Entity Bean
  5. 將滑鼠指標移至類別圖解上,按一下 Bean 所要放置的位置。 這會在類別圖解中建立一個新的 CMP 2.x Entity Bean,並以視覺化的方式呈現它。

由於 EJB Bean 比較複雜,這個動作會啟動「建立 Enterprise Bean」精靈,讓您定義這個 Bean。

「建立 Enterprise Bean」頁面

請在精靈的第一頁中,遵循下列步驟:

  1. 確認 EJB 專案UML EJB tutorial
  2. 提供 Bean 名稱 (Author)。
  3. 確認來源資料夾ejbModule
  4. 預設套件名稱改成 sample
  5. 確認 CMP 版本2.x
  6. 下一步

新建 EJB 精靈的基本內容頁面

「Enterprise Bean 詳細資料」頁面

請在精靈的第二頁中,遵循下列步驟:

  1. 保留 Bean Super 類型空白。
  2. 確認 Bean 類別sample.AuthorBean
  3. 保持不勾選遠端用戶端視圖勾選框。
  4. 選取本端用戶端視圖勾選框。
  5. 確認本端 Home 介面名稱是 sample.AuthorLocalHome
  6. 確認本端介面名稱是 sample.AuthorLocal
  7. 確認索引鍵類別java.lang.Integer
  8. 選取索引鍵類別使用單一索引鍵屬性類型勾選框。
  9. 確認 id 索引鍵在 CMP 屬性清單中。
  10. 新增兩個 CMP 屬性:
    1. 按一下新增
    2. 建立名稱為 name、類型為 java.lang.String 的屬性。 保持不勾選陣列索引鍵欄位勾選框,選取將 getter 和 setter 方法提升至本端介面勾選框。 當 getter 和 setter 提升至本端介面時,用戶端應用程式就能夠見到它們。
    3. 按一下套用
    4. 建立名稱為 age、類型為 java.lang.Interger 的屬性。 保持不勾選陣列索引鍵欄位勾選框,選取將 getter 和 setter 方法提升至本端介面勾選框。
    5. 按一下套用,再按一下關閉
    6. 按一下完成

新建 EJB 精靈的 Enterprise Bean 詳細資料頁面

這時會在類別圖解中建立您的第一個 Entity Bean,並以視覺化的方式呈現它。 下列檔案會出現在「專案瀏覽器」視圖中:

請開啟 EJB 部署描述子,並注意列在「概觀」頁面 Enterprise JavaBeans 標題之下的 Author Bean。 請按一下 Author Bean 項目。 這時會開啟部署描述子編輯器的 Bean 頁面,顯示三個 CMP 欄位、四個類別和介面檔,其中包括主鍵 java.lang.Integer 所用的類別。

在 Bean 頁面的「WebSphere 連結」標題之下,會顯示 JNDI 名稱 ejb/sample/AuthorLocalHome。 當用戶端應用程式搜尋 Bean 時,會使用這個 JNDI 名稱。

在「專案瀏覽器」視圖中,EJB 專案之下的 ejbModule > META-INF 目錄包含新檔案 ibm-ejb-jar-bnd.xmi。 這個檔案含有 IBM 專用連結資訊。其中的資訊可用部署描述子編輯器來存取,但值是儲存在個別的檔案中,以便您要將應用程式部署在其他供應商的 EJB 伺服器時,能夠輕易移除 IBM 專用增強功能。 稍後在 EJB 開發程序中,會出現 ibm-ejb-jar-ext.xmi 檔。 它包含 IBM 專用延伸規格資訊。

另外,也請在「專案瀏覽器」視圖中,展開 EJB 專案之下的部署描述子目錄,展開 Entity Bean > Author,探索組成 Author Bean 之各元件的鏈結。

建立 Book Bean

之後,您將建立 Book Bean。 請遵循下列步驟:

  1. 將另一個 CMP 2.x Entity Bean 新增至類別圖解中。
  2. 遵循 Author Bean 相同步驟,但差異如下:
  3. 按一下完成

這時會在類別圖解中建立您的第二個 Entity Bean,並以視覺化的方式呈現它,「專案瀏覽器」視圖中會出現下列檔案:

現在,EJB 部署描述子會在「概觀」頁面的 Enterprise JavaBeans 清單中顯示 Book。Book Bean 的詳細資料類似於 Author Bean。 請從「專案瀏覽器」視圖中,在 EJB 專案之下,展開部署描述子目錄。 展開 Entity Bean > Book,探索 Bean 元件的鏈結。

定義 Bean 之間的關係

之後,您將在類別圖解中,定義兩個 CMP Bean 之間的 CMP 關係。 單一作者可以關聯於零或多本書。 單一書籍也可以關聯於零或多位作者。 這個關係將利用 0..*:0..* 記號表示成雙向多對多關係

  1. 按兩下 UML 類別圖解的標題列來放大視窗。
  2. 在選用區視圖中,按一下箭頭(下拉功能表圖示)來展開 CMP 關係抽屜。
  3. 選取 0..*:0..* CMP 關係
  4. 將滑鼠指標移至 Author Bean 上面。 如果 Bean 的關係有效,您會見到一個箭頭圖示(箭頭圖示)。 如果關係無效,您會見到相同的圖示和無效符號(無效箭頭圖示)。
  5. 按一下 Author Bean。
  6. 將游標拖曳至 Book Bean,再將它放開。 如果這個目標 Bean 對關係無效,就會出現無效圖示(無效箭頭圖示)。
  7. 在產生適當的基礎程式碼之後,會在圖解中,以視覺化的方式將 CMP 關係呈現為一項關聯。 在部署描述子中,這些關係會出現在 Bean 頁面的「關係」標題之下。
  8. Ctrl + S 鍵來儲存類別圖解。

EJB 部署描述子的關係區段

您可以在類別圖解中,重新排列元素來查看詳細資料。

顯示關係的類別圖解

探索其他視圖

「概要」和「內容」視圖提供關於整體類別圖解和特定 EJB 元件內容的有用資訊。

依預設,「概要」視圖會出現在工作台的左下方。 請遵循下列步驟,利用這個視圖來導覽大型圖解:

  1. 如果類別圖解仍在使用整個工作台頁框,請再按兩下類別圖解的標題列,將它還原成正常大小。
  2. 請注意工作台左下角的概要視圖。 這個位置會用較小的比例來顯示類別圖解。 如果圖解太大,無法在編輯視窗中完整看到它,概要視圖會出現強調顯示的矩形,用來表示圖解的可見部分。
  3. 在「概要」視圖中,利用您的滑鼠指標來回移動強調顯示的矩形。 這時會對應於「概要」視圖所強調顯示的區段來移動類別圖解在編輯區中的可見區段。

類別圖解的「概要」視圖

依預設,「內容」視圖會出現在工作台的右下方。 它有「外觀」和「進階」兩個標籤。 您可以在「外觀」頁面中,變更顏色、字型和其他視覺化內容。「進階」頁面會顯示類別圖解中強調顯示的元素的詳細內容。「內容」視圖中的部分內容值是唯讀的,部分可以修改。

類別圖解的「內容」視圖

從 UML 類別圖解修改屬性

之後,您將修改 Author Bean 的部分 CMP 屬性。

將 CMP 屬性新增至 Bean 中

  1. 將滑鼠游標移至 Author Bean 的任何位置。這時會出現動作列

  2. 動作列
  3. 按一下動作列中的主鍵符號(主鍵欄位圖示)來將其他 CMP 屬性新增至 AuthorBean 中。 這時會開啟「CMP 欄位」精靈。
  4. 新增名稱為 gender、類型為 java.lang.Character 的欄位。
  5. 按一下套用 > 關閉 > 完成。這時 Bean 類別會更新,且 gender 屬性會出現在類別圖解上的 Bean 的「屬性」區段中。

Author Bean 的 CMP 屬性

使 CMP 屬性成為索引鍵的一部分

  1. 在 Author Bean 中強調顯示 name 屬性。
  2. 按一下滑鼠右鍵來選取編輯 > 新增至索引鍵。 這時會開啟「新建索引鍵類別」精靈。 這時需要新索引鍵類別,因為索引鍵已不再是初始 Java 類型。 在這個步驟之前,會利用 java.lang.Integer 來作為索引鍵類別。
  3. 按一下確定來利用預先選取的選項,以預設索引鍵類別名稱 AuthorKey 建立新的索引鍵類別。 這時 name 屬性會出現在類別圖解中,且會含有主鍵欄位符號。 新索引鍵類別會出現在 UML EJB tutorialClient > ejbModule > sample 目錄中
  4. Ctrl + S 鍵來儲存類別圖解。

「新建索引鍵類別」精靈

操作 UML 類別圖解中的物件

之後,請查看類別圖解中的詳細資料。 請按兩下類別圖解的標題列來將它放大。 現在,類別圖解編輯器佔用工作台視窗的大部分,右側展開選用區。

重新排列圖解中的 Bean 元件

  1. 按一下其中一個 Bean。Bean 的矩形周圍會出現小黑方塊,表示已選取它。
  2. 將 Bean 拖曳至類別圖解中的另一個位置,再放下它。 如果移動 Author 或 Book Bean,就會調整關係箭頭來反映新位置。

變更 Bean 的顯示項目

  1. 在類別圖解編輯器中,強調顯示 Author Bean。 代表 Bean 的矩形會分成若干區段。 顯示的預設區段有「屬性」和「提供的介面」。 區段左上角有一個隱藏圖示(隱藏圖示)。
  2. 按一下某個隱藏圖示來隱藏 Bean 的區段。 這時會收合區段,隱藏圖示會改成顯示圖示(顯示圖示)。
  3. 按一下顯示圖示來重新展開區段。
  4. 用滑鼠右鍵按一下 Bean,選取過濾器 > 顯示/隱藏區段來選取顯示或隱藏哪些區段。

含隱藏和顯示區段的 EJB

從圖解中開啟編輯器

當您開啟 EJB Bean Java 編輯器時,這個編輯器的「概要」視圖會出現在工作台的左下角中。 您可以從這個視圖進行 Bean 的變更。 用滑鼠右鍵按一下「概要」視圖中的其中一個方法,並選取 Enterprise Bean。 請選取「提升」或「降級」選項,將所選的方法提升或降級至列出的介面類型之一。

請嘗試利用 EJB Bean Java 編輯器將方法新增至類別中。 新方法會出現在「概要」視圖中。 如果您將新方法提升至介面,方法會出現在類別圖解中。

EJB Bean Java 編輯器

熟悉 Bean 的相關裝飾

裝飾 意義
CMP 2.x Entity Bean 裝飾 CMP 2.x Entity Bean
主鍵欄位裝飾 主鍵欄位
CMP 欄位裝飾 CMP 欄位,非主要
本端介面裝飾 本端介面
本端 Home 介面裝飾 本端 Home 介面
遠端介面裝飾 遠端介面
本端方法裝飾 本端方法
本端 Home 方法裝飾 本端 Home 方法
遠端方法裝飾 遠端方法

在資訊中心的 UML 視覺化參照之下,有完整的裝飾清單。

UML 類別圖解和程式碼互動

當您變更類別圖解時,基礎程式碼也會自動進行對應的變更。 相反地,如果您直接變更程式碼,也會自動改變類別圖解來反映變更。 工作台內任何類型的變更都會導致立即自動重新驗證程式碼。EJB 應用程式的驗證包括識別 Java 類別的編譯錯誤、類別路徑問題,以及 EJB 規格違規。

工作台底端堆疊了若干視圖,其中包括名稱為「問題」的視圖。 這個視圖會顯示工作台內所有專案和檔案的所有錯誤、警告和參考訊息。 按兩下列出的問題會開啟適當檔案發生錯誤的位置。

依預設,「問題」視圖會將列出的問題數限制為 100。 您可以變更這個限制,也可以過濾視圖,只顯示您想要查看的項目。 過濾選項包括問題嚴重性、專案、資源和問題類型。 如果要修改這些預設值,請按一下箭頭(下拉功能表圖示),選取過濾器

配置 UML 類別圖解的喜好設定

您可以變更類別圖解的某些預設行為和顯示性質。 請從視窗功能表中,選取喜好設定。 展開建模來查看可變更的項目。

主要區段包含「廣域設定」,如滑鼠指標停在圖解中的某類別上時,是否要顯示動作列。「外觀」區段有若干頁面,可讓您變更字型、顏色、連接器和形狀等項目。EJB 區段有一項何時開啟類別圖解的設定。 其他區段包括 Java 欄位和方法、規則和格線以及驗證的選項。

請逐步檢視各個區段來熟悉各個選項。 進行變更之後,請按一下確定來儲存它們,再結束「喜好設定」頁面。

現在您已準備好開始進行練習 1.4:將 Entity Bean 對映至關聯式資料庫

讀者意見
(C) Copyright IBM Corporation 2000, 2005. All Rights Reserved.