IBM®
跳转到主要内容
    中国 [选择]    使用条款
 
 
Select a scope: Search for:    
    首页    产品    服务与解决方案     支持与下载    个性化服务    
跳转到主要内容

developerWorks 中国  >  WebSphere  >

使用 WebSphere Transformation Extender Database Interface Designer 和 Database Adapter 转换数据

developerWorks
文档选项

未显示需要 JavaScript 的文档选项

样例代码

英文原文

英文原文


级别: 中级

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 初级和中级用户。您应该已经安装了以下软件:

  • WebSphere TX V8.2
  • DB2

在本文结尾处,您可以 下载 一个名为 SchemaQueries.zip 的文件,该文件包含创建本文使用的样例 DB2 数据库的命令。

1. 连接到数据库

开始之前,在一个 DB2 命令服务器上执行 SchemaQueries.zip 文件中的命令。执行这些命令将在 DB2 中创建一个名为 ADMINREG 的数据库,该数据库带有表 User、 UserGroup 和 Group。类型树是定义输入和输出数据的格式的数据定义文件。由于输入数据从 ADMINREG 中的 User 表获取,因此需要一个定义该表中的数据的类型树。类型树可以从 Database Interface Designer 中的数据库、查询、存储过程或视图自动生成。我们将对输入和输出使用相同的类型树。

1.1. 测试到现有数据库的连接

  1. 打开 Database Interface Designer:Start => WebSphere Transformation Extender V8.2 => Design Studio => Database Interface Designer。
  2. 右键单击 Database Interface Designer 导航器中的 Database/Query Files,选择 New Database/Query File。将其命名为 Database_QueryFile1。
  3. 右键单击 Databases 并选择 New。
  4. 在 Database Definition 对话框中,输入 ADMINREG 作为数据库名。
  5. 在 Adapter 中,选择 DB2 作为 database Type,选择 Microsoft Windows 作为 Platform。WebSphere TX 提供几个数据库适配器,包括 Oracle、MS SQL Server、Sybase、Informix 等。在本文中,您将使用 DB2 数据库适配器。

    图 1. 选择数据库适配器
    图 1. 选择数据库适配器

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

    图 2
    图 2

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

      图 3. 从 Tables 向导生成类型树
      图 3. 从 Tables 向导生成类型树

    4. 查看 ADMINREG 中的表 User、Group 和 UserGroup。
    5. 关闭 Generate Tree 对话框并将该 Database Query File 保存为 Database_QueryFile1.mdq,下一小节将使用这个文件。

1.2. 从数据库表生成类型树

类型树可以从数据库、查询、已存储过程或视图自动生成。在上一小节中,您建立了一个到数据库的连接,现在您可以重用这个连接生成一个类型树。

为 USER 表生成一个类型树

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

    图 4. 从一个表生成类型树
    图 4. 从一个表生成类型树

  9. 单击 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 中的跟踪工具
图 5. Database Interface Designer 中的跟踪工具

1.4. 为查询生成类型树

类型树可以从数据库、查询、存储过程或视图中自动生成。在前面的小节中,您创建了一个数据库连接,现在您可以重用该连接从一个查询生成一个类型树。

创建一个引用数据库中的 USER 表的简单查询

  1. 在 Database Interface Designer 中,右键单击 Navigator 中的 Queries 并选择 New。
  2. 查询名称惟一地标识查询。输入 MyUserQuery。
  3. 在 Query 窗口中输入以下 SQL 语句:Select * from USER,该语句将选择 USER 表的所有列。
  4. 单击 OK。查询名称将出现在 Queries 副标题下的 Navigator 中。
  5. 生成如图 6 所示的类型树。

    图 6. 为一个查询生成类型树
    图 6. 为一个查询生成类型树

  6. Generate Tree 对话框与从一个表生成类型树时一样。
  7. 生成类型树并将其保存为 MyUserQuery.mtt。下一小节的映射将使用这个类型树。
  8. 右键单击并保存文件 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 项目
图 7. 创建一个 Extender 项目

输入项目名 SampleProject 并单击 Finish。一个项目将被添加到您的工作空间中。

2.2. 准备映射和转换

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


图 8. 创建新的映射源文件
图 8. 创建新的映射源文件

在 Design Studio 的概览视图中右键单击映射源文件并添加一个名为 DatabaseMap 的新映射。

添加输入卡

  1. 添加一个名为 MyDBCard 的输入卡。
  2. 选择 MyUserQuery.mtt,这是从查询创建的类型树,将 Type 选择为 DBSelect(如图 9 所示),因为这个组代表整个表而不是一条记录。如果您需要转换单个记录,那么选择组 Row。

    图 9. 创建一个输入卡
    图 9. 创建一个输入卡

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

    图 10. 输入卡设置
    图 10. 输入卡设置

添加输出卡

  1. 添加一个名为 OutputCard 的输出卡。
  2. 选择 MyUserQuery.mtt 作为 Type 树,选择 DBSelect 作为 Type。
  3. 选择 Target 作为 File adapter,因为输出将被写入一个文本文件中。指定路径为 c:/Mytestfile.txt,单击 OK 保存。

2.3. 构建并运行映射

现在您已为映射创建了输入和输出卡,已经准备好进行转换了。将组 MYDBCard 从输入卡拖放到输出卡组规则列。


图 11. 映射输入和输出
图 11. 映射输入和输出

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


图 12. 运行映射
图 12. 运行映射

测试结果

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


图 13. Run Results 视图
图 13. Run Results 视图

来自 USER 表的记录在运行时被转换为一个文本文件。

结束语

本文介绍了 WebSphere TX 资源适配器和 WebSphere TX Database Interface Designer,展示了如何使用 WebSphere TX 轻松连接到一个数据库,通过从数据库获取数据执行转换。本文还展示了如何在 Database Interface Designer 中启用跟踪功能,介绍了类型树和映射等 Design Studio 基础特性。






回页首


下载

描述名字大小下载方法
代码样例1SchemaQueries.zip4 KBHTTP
关于下载方法的信息

注意:

  1. 开始本教程之前,执行这些模式查询以在 DB2 中创建一个数据库。


参考资料



关于作者

images/nijhawan.jpg

Nidhi Nijhawan 为 IBM India 的 WebSphere Lab Services 团队工作,并且是 WebSphere Transformation Extender、WebSphere Message Broker、WebSphere MQ 和 WebSphere DataPower SOA Appliances 的 EAI 顾问,她拥有 5 年行业经验。




对本文的评价










回页首


IBM 公司保留在 developerWorks 网站上发表的内容的著作权。未经IBM公司或原始作者的书面明确许可,请勿转载。如果您希望转载,请通过 提交转载请求表单 联系我们的编辑团队。
    关于 IBM 隐私条约 联系 IBM 使用条款