级别: 中级 Nidhi Nijhawan, 软件顾问, IBM
2009 年 11 月 09 日 学习如何使用 WebSphere Transformation Extender Design Studio、Database Interface Designer 和 Database Adapter 从数据库表获取数据并将数据转换为文本文件。本文还将介绍基本的 WebSphere TX 特性,如类型树和映射等。
简介
在本文中,您将使用 IBM® WebSphere® Transformation Extender (TX) 资源适配器检索并路由数据。适配器提供对数据库、文件、消息传递系统、企业应用程序和其他数据源和目标的访问。本文主要介绍其中一个资源适配器 Database Adapter,并同时展示如何使用 WebSphere TX Design Studio 和 Database Interface Designer。
先决条件
本文针对 WebSphere TX 初级和中级用户。您应该已经安装了以下软件:
在本文结尾处,您可以 下载 一个名为 SchemaQueries.zip 的文件,该文件包含创建本文使用的样例 DB2 数据库的命令。
1. 连接到数据库
开始之前,在一个 DB2 命令服务器上执行 SchemaQueries.zip 文件中的命令。执行这些命令将在 DB2 中创建一个名为 ADMINREG 的数据库,该数据库带有表 User、 UserGroup 和 Group。类型树是定义输入和输出数据的格式的数据定义文件。由于输入数据从 ADMINREG 中的 User 表获取,因此需要一个定义该表中的数据的类型树。类型树可以从 Database Interface Designer 中的数据库、查询、存储过程或视图自动生成。我们将对输入和输出使用相同的类型树。
1.1. 测试到现有数据库的连接
- 打开 Database Interface Designer:Start => WebSphere Transformation Extender V8.2 => Design Studio => Database Interface Designer。
- 右键单击 Database Interface Designer 导航器中的 Database/Query Files,选择 New Database/Query File。将其命名为 Database_QueryFile1。
- 右键单击 Databases 并选择 New。
- 在 Database Definition 对话框中,输入 ADMINREG 作为数据库名。
- 在 Adapter 中,选择 DB2 作为 database Type,选择 Microsoft Windows 作为 Platform。WebSphere TX 提供几个数据库适配器,包括 Oracle、MS SQL Server、Sybase、Informix 等。在本文中,您将使用 DB2 数据库适配器。
图 1. 选择数据库适配器

- 扩展 Data Source 选项。
- Database interface Designer 选项指定要访问的数据库。从下拉列表中选择 ADMINREG。
- Runtime 选项指定在映射时从 Map Designer、Command Server 或 Launcher 访问的数据库。本文的运行时和开发数据源相同,所以选择 ADMINREG。
- 扩展 Security 选项。这些选项指定连接到数据库实例的用户 ID 和密码。输入您的 DB2 用户 ID 和密码。
- 单击 OK 保存数据库连接信息。Database Definition 窗口看起来应该如图 2 所示。
图 2

- 测试这个连接:
- 在 Database Interface Designer 导航器中,右键单击 Tables 并选择 Generate Tree。
- 如果打开一个带选项的对话框,则说明已经建立一个连接。
- 如果没有打开一个带选项的对话框,则说明没有建立连接。检查 Security Information 以确认连接:
图 3. 从 Tables 向导生成类型树

- 查看 ADMINREG 中的表 User、Group 和 UserGroup。
- 关闭 Generate Tree 对话框并将该 Database Query File 保存为 Database_QueryFile1.mdq,下一小节将使用这个文件。
1.2. 从数据库表生成类型树
类型树可以从数据库、查询、已存储过程或视图自动生成。在上一小节中,您建立了一个到数据库的连接,现在您可以重用这个连接生成一个类型树。
为 USER 表生成一个类型树
- 在 Database Interface Designer 中,右键单击导航器中的 Tables 并选择 Generate Tree。
- 从 Tables 对话框中选择 USER。
- File Name 字段指定要创建的类型树的名称。输入 Database_QueryFile1.mtt。
- 通过选择 Overwrite file 或 Replace existing types,Type 选项允许您替换一个现有类型树文件,并通过选择 Override type 添加新类型。由于您要创建一个新的类型树,因此将 Type 选项更改为 Overwrite file。
- 为一个数据库表生成类型树时,Database Interface Designer 将自动定义一个名为 Row 的组。Row 组格式下拉列表用于指定该组的格式,可以指定为定界格式或固定格式。对于这个练习,保留默认值。
- 可以指定 Group 选项,比如记录的每个字段之间的分隔符、每条记录的结束符等。
- Represent date/time columns as text items 选项允许控制日期和时间数据类型在类型树中的创建方式。如果选择这个选项,定义为 Date 数据类型的数据库列在类型树中定义为一个字符文本字符串。
- Treat text items as: 选项允许将语言指定为 English (Western) 或 Japanese,如果您安装的是 Design Studio 的国际版的话。将这个选项设置为 Western 并单击 Generate。Database Interface Designer 将创建一个对应于 USER 表的类型树并显示通知消息。
图 4. 从一个表生成类型树

- 单击 Close 关闭窗口。这个对话框提供已创建数据类型的概览。
1.3. 在 Database Interface Designer 中启用跟踪功能
跟踪功能提供关于数据库连接的信息。在生成类型树时,如果启用了跟踪功能,Database Interface Designer 将自动创建一个跟踪文件。跟踪文件保存在 database/query 文件所在的目录中,文件名为 database/query 文件的完整名称加上扩展名 .dbl。例如,如果 database/query 文件名为 Orders.mdq,则跟踪文件的名称为 Orders.dbl。要使用跟踪功能,在 Database Interface Designer 中启用跟踪工具,如图 5 所示。
图 5. Database Interface Designer 中的跟踪工具

1.4. 为查询生成类型树
类型树可以从数据库、查询、存储过程或视图中自动生成。在前面的小节中,您创建了一个数据库连接,现在您可以重用该连接从一个查询生成一个类型树。
创建一个引用数据库中的 USER 表的简单查询
- 在 Database Interface Designer 中,右键单击 Navigator 中的 Queries 并选择 New。
- 查询名称惟一地标识查询。输入 MyUserQuery。
- 在 Query 窗口中输入以下 SQL 语句:Select * from USER,该语句将选择 USER 表的所有列。
- 单击 OK。查询名称将出现在 Queries 副标题下的 Navigator 中。
- 生成如图 6 所示的类型树。
图 6. 为一个查询生成类型树

- Generate Tree 对话框与从一个表生成类型树时一样。
- 生成类型树并将其保存为 MyUserQuery.mtt。下一小节的映射将使用这个类型树。
- 右键单击并保存文件 Database_QueryFile1.mdq。
2. 在 WebSphere TX Design Studio 中开发映射
在这个部分中,您将使用第 1 部分生成的 MyUserQuery.mtt 类型树和 Database_QueryFile1.mdq 文件从 USER 表获取记录并将记录写入一个平面文件。您将把这种类型映射到输入卡中的输入源。
2.1. 启动 WebSphere TX Design Studio 并创建一个 Extender 项目
由于您必须使用映射和转换,启动 WebSphere TX Design Studio:选择 Start => IBM WebSphere Transformation Extender => Design Studio => Design Studio。选择一个工作空间并关闭 Welcome 视图。如图 7 所示创建一个 Extender 项目:
图 7. 创建一个 Extender 项目

输入项目名 SampleProject 并单击 Finish。一个项目将被添加到您的工作空间中。
2.2. 准备映射和转换
在这个小节中,您首先要创建映射源文件,它是您的映射的占位符;然后要在这个映射源文件中创建可执行映射。可执行映射可以拥有一个或多个输入和输出卡。在输入卡中配置输入类型树和适配器设置,在输出卡中配置输出卡和适配器设置。然后,执行映射操作,构建和运行映射来检查结果。在您的工作目录中创建一个新的映射源文件,将其命名为 MyFirstMap.mms。右键单击您的 SampleProject 中的 Map Files 文件夹并选择 New => Map Source。
图 8. 创建新的映射源文件

在 Design Studio 的概览视图中右键单击映射源文件并添加一个名为 DatabaseMap 的新映射。
添加输入卡
- 添加一个名为
MyDBCard 的输入卡。
- 选择 MyUserQuery.mtt,这是从查询创建的类型树,将 Type 选择为 DBSelect(如图 9 所示),因为这个组代表整个表而不是一条记录。如果您需要转换单个记录,那么选择组 Row。
图 9. 创建一个输入卡

- 将 Source 设置更改为适配器数据库,原因是您将从那个数据库获取输入信息。
- 将正在使用的数据类型指定为数据源。当您将 Source 设置更改为 Database 时,DatabaseQueryFile 设置出现在输入卡中。
- File 设置指定 database/query 文件(.mdq),该文件包含查询的定义。选择 Database_QueryFile1.mdq 作为 File 设置。
- 数据库下拉列表自动更新为显示在选中文件中定义的所有数据库。ADMINREG 是文件
Database_QueryFile1.mdq 中定义的惟一数据库,因此它自动选中为数据库。
- Query 设置指定作为数据源使用的查询。如果选中数据库中定义了多个查询,将显示一个所有查询的下拉列表。选择 MyUserQuery 作为 Query。
- 单击 OK 保存设置。这个输入卡如图 10 所示:
图 10. 输入卡设置

添加输出卡
- 添加一个名为 OutputCard 的输出卡。
- 选择 MyUserQuery.mtt 作为 Type 树,选择 DBSelect 作为 Type。
- 选择 Target 作为 File adapter,因为输出将被写入一个文本文件中。指定路径为 c:/Mytestfile.txt,单击 OK 保存。
2.3. 构建并运行映射
现在您已为映射创建了输入和输出卡,已经准备好进行转换了。将组 MYDBCard 从输入卡拖放到输出卡组规则列。
图 11. 映射输入和输出

右键单击概览视图中的映射,单击 Build 编译映射。然后右键单击映射并单击 Run。您应该得到消息:Map completed successfully。
图 12. 运行映射

测试结果
右键单击概览视图中的映射并单击 Run results,选择结果文件并单击 OK。您将看到,Design Studio 中有一个 Mytestfile.txt 文件,这表明来自 USER 表的记录已经被转换为一个文本文件,如图 13 所示。
图 13. Run Results 视图

来自 USER 表的记录在运行时被转换为一个文本文件。
结束语
本文介绍了 WebSphere TX 资源适配器和 WebSphere TX Database Interface Designer,展示了如何使用 WebSphere TX 轻松连接到一个数据库,通过从数据库获取数据执行转换。本文还展示了如何在 Database Interface Designer 中启用跟踪功能,介绍了类型树和映射等 Design Studio 基础特性。
下载 | 描述 | 名字 | 大小 | 下载方法 |
|---|
| 代码样例1 | SchemaQueries.zip | 4 KB | HTTP |
|---|
注意: - 开始本教程之前,执行这些模式查询以在 DB2 中创建一个数据库。
参考资料
关于作者  | 
|  | Nidhi Nijhawan 为 IBM India 的 WebSphere Lab Services 团队工作,并且是 WebSphere Transformation Extender、WebSphere Message Broker、WebSphere MQ 和 WebSphere DataPower SOA Appliances 的 EAI 顾问,她拥有 5 年行业经验。 |
对本文的评价
|