练习 1.3:将实体 bean 添加至类图

在开始之前,必须先完成练习 1.2:准备工作空间

练习 1.3 指导您完成从 UML 类图创建实体 bean 的过程。在此模块中,您将完成下列任务:

bean 的描述

将在此方案中创建两个实体 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 抽屉尚未打开,则单击 EJB 抽屉以打开它。CMP 2.x 实体 bean 将显示在列表的中间。
  3. 单击 CMP 2.x 实体 bean 右边的箭头(下拉菜单图标)以显示更多选项。列示的另一个选项为 CMP 1.x 实体 bean
  4. 选择 CMP 2.x 实体 bean
  5. 将鼠标指针移到类图上并在想要放置 bean 的地方单击。这将在类图中创建一个新的 CMP 2.x 实体 bean 并使它可视化。

因为 EJB bean 很复杂,所以此操作会启动“创建企业 bean”向导,这将允许您定义 bean。

“创建企业 bean”页面

在向导的第一页上,遵循下列步骤:

  1. 验证 EJB 项目UML EJB tutorial
  2. 提供 Bean 名称 Author
  3. 验证源文件夹ejbModule
  4. 缺省包名称更改为 sample
  5. 验证 CMP 版本2.x
  6. 单击下一步

“新建 EJB”向导的基本属性页面

“企业 bean 详细信息”页面

在向导的第二页上,遵循下列步骤:

  1. 使 Bean 超类型保留为空白。
  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. 创建类型为 java.lang.String 的名称为 name 的属性。不选中数组键字段复选框,并且选中将 getter 和 setter 方法提升至本地接口复选框。当将 getter 和 setter 提升至本地接口时,可将它们显示给客户机应用程序。
    3. 单击应用
    4. 创建类型为 java.lang.Integer 的名称为 age 的属性。不选中数组键字段复选框,并且选中将 getter 和 setter 方法提升至本地接口复选框。
    5. 单击应用,然后单击关闭
    6. 单击完成

“新建 EJB”向导的“企业 bean 详细信息”页面

将在类图上创建和可视化第一个实体 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 项目下面的部署描述符目录,展开实体 Bean > Author 并研究指向组成 Author bean 的各个组件的链接。

创建 Book bean

接下来将创建 Book bean。遵循下列步骤:

  1. 将另一个 CMP 2.x 实体 bean 添加至类图。
  2. 遵循与 Author bean 相同的步骤,但是有下列区别:
  3. 单击完成

这就在类图上创建并可视化了第二个实体 bean 并且下列文件显示在“项目资源管理器”视图中:

现在 EJB 部署描述符的“概述”页的 Enterprise JavaBeans 的列表上具有 Book bean。Book bean 具有类似于 Author bean 的详细信息。从“项目资源管理器”视图展开 EJB 项目下面的部署描述符目录。展开实体 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. 添加类型为 java.lang.Character 名称为 gender 的字段。
  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 作出更改。在“大纲”视图中右键单击其中一个方法并选择企业 Bean。选择“提升”或“降级”选项中的其中一个选项以将选择的方法提升或降级为列示的其中一种接口类型。

使用 EJB Bean Java 编辑器尝试将方法添加至类。新方法将显示在“大纲”视图中。如果将新方法提升为接口,则该方法会出现在类图上。

EJB Bean Java 编辑器

熟悉与这些 bean 相关联的修饰

修饰 含义
CMP 2.x 实体 bean 修饰 CMP 2.x 实体 bean
主键字段修饰 主键字段
CMP 字段修饰 CMP 字段,不是主要的
本地接口修饰 本地接口
本地 home 接口修饰 本地 home 接口
远程接口修饰 远程接口
本地方法修饰 本地方法
本地 home 方法修饰 本地 home 方法
远程方法修饰 远程方法

修饰的完整列表显示在信息中心中 UML 可视化参考下面。

UML 类图和代码交互

当您在类图中进行更改时,会自动对底层的代码进行相应地更改。相反,如果您直接对代码进行更改,则会自动改变类图以反映该更改。工作台内进行的任何类型的更改都会导致代码的重新验证。对于 EJB 应用程序,验证包括标识 Java 类中的编译错误、类路径问题和 EJB 规范违例。

在工作台底部,堆叠了多个视图,其中包括称为“问题”的视图。此视图显示有关工作台中的所有项目和文件的所有错误、警告和参考消息。双击某个列示的问题会打开发生错误的相应文件,并定位至发生该错误的位置。

缺省情况下,“问题”视图将列示的问题的数目限制为 100 个。您可以更改该限制,或者过滤该视图以仅显示您想要看到的项。过滤选项包括问题严重性、项目、资源和问题类型。要修改这些缺省设置,单击箭头(下拉菜单图标)并选择过滤

配置 UML 类图的首选项

可以更改类图的某些缺省行为和显示特征。从窗口菜单中选择首选项。展开建模以查看可以更改的项。

主要部分包含“全局设置”,例如,当使鼠标指针停在图中的一个类上时,是否显示“操作栏”。“外观”部分具有多个页面,它们允许您更改字体、颜色、连接符和形状等等特征。EJB 部分具有类图何时打开的设置。其它部分包括 Java 字段和方法、规则和网格以及验证的选项。

单步执行各部分以熟悉各种选项。在作出更改之后,单击确定以保存它们并退出“首选项”页。

现在,您可以开始练习 1.4:将实体 bean 映射至关系数据库了。

使用条款 | 反馈
(C) Copyright IBM Corporation 2000, 2005. All Rights Reserved.