linux db2 数据源配置文件,为 DB2 UDB 系列配置数据源

Colin Yu,业务方案团队, IBM 多伦多实验室

Jane Fung, WebSphere Studio 技术支持部, IBM 多伦多实验室

2003 年 9 月 本文描述了在 WebSphere Studio 中为不同平台上的 IBM DB2 通用数据库配置数据源的详细步骤,并提供了连接检测的样例代码。

简介

JDBC 2.0 标准扩展(JDBC 2.0 Standard Extension)规范中定义的数据源(DataSource)对象让您可以管理数据库的连接池。使用连接池的主要好处有:

节省时间。创建连接是很费时的;有了连接池,数据源就可以维护连接池并在请求时将连接提供给客户机。

简化资源分配。只从数据源对象分配资源,而不是从代码中的任意位置分配资源。

简化连接调用。要在 JDBC 1.0 中获取连接,必须在进行 DriverManager 调用之前对数据库驱动程序的类名调用 Class.forName()。相反,有了 JDBC 2.0,您就可以选择使用 JNDI 查找获取数据源实例,然后通过调用数据源实例的 getConnection() 方法从它那里获取连接。该代码的可移植性更好。

WebSphere Application Server V5 支持两种类型的数据源:

V4 数据源,用于根据 J2EE 1.2 规范编写的应用程序。

V5 数据源,用于根据 J2EE 1.3 规范编写的应用程序。

IBM® DB2® Universal Database™(UDB)系列产品与 WebSphere Application Server 无缝集成在一起。本文将着重讨论如何在 WebSphere Studio V5 中为 DB2 UDB 系列产品配置 V5 数据源。WebSphere Studio 是 J2EE 应用程序的开发工具,具有 WebSphere Application Server 的 V4 和 V5 测试环境(Test Environmen)。由于 WebSphere 测试环境实际上是嵌在 WebSphere Studio 中的 WebSphere Application Server 基础版本,因此可以对实际的 WebSphere Application Server 管理控制台(Admin Console)使用相同的配置步骤。本文专门使用 WebSphere Studio 的 Application Developer 配置。

本文中涵盖了下列 DB2 系列产品:

DB2 UDB 分布式平台(Windows®、Linux 和 UNIX®)版

DB2 UDB for iSeries

DB2 UDB for z/OS 和 OS/390

在 WebSphere® Studio 中配置数据源

在 WebSphere Studio 中,在 WebSphere 测试环境的服务器配置文件中定义数据源。下面这四个步骤描述了在创建了服务器配置之后如何在 WebSphere Studio 中配置数据源。请参阅 WebSphere Studio 的联机帮助以获取有关创建服务器配置的信息。

确定作用域。

可以在多个作用域中定义一个数据源,这些作用域是可以看见该资源定义的级别 - 单元、节点或服务器级别。

图 1. 选择数据源的作用域

figure_01.jpg

单元(Cell)

一个单元就是 WebSphere Application Server 分布式网络中互相关联的一组节点。如果在单元作用域定义的资源没有被覆盖,那么就可以从所有节点和服务器看到它们。由于 WebSphere Studio 中的 WebSphere 测试环境只支持一个节点,因此单元选项是不可用的。WebSphere Application Server Network Deployment 版本没有“Cell”这个选项。

节点(Node)

一个节点就是一台物理机器,它可以包含多个服务器实例。在节点作用域定义的资源覆盖在单元作用域上定义的任何相同的资源,而且如果这些资源在该节点的服务器作用域上没有被覆盖,那么同一节点上的所有服务器都可以看见它们。

服务器(Server)

在服务器作用域上定义的资源覆盖在单元作用域或在父节点作用域上定义的任何相同的资源定义,并且只有某个特定服务器才能看见它们。“Server”是 WebSphere 测试环境中的缺省作用域。

创建 JDBC 提供程序。

要创建 JDBC 提供程序,必须知道数据源接口的实现类和 JDBC 驱动程序的类路径,这两者都特定于供应商。例如,DB2 UDB 数据源的实现类是 COM.ibm.db2.jdbc.DB2ConnectionPoolDataSource ,它是 JDBC 驱动程序 db2java.zip 的一部分。

创建数据源。

数据源有许多特性。下列特性是与供应商无关的:

Name指定数据源的显示名。例如,可以使用名称 TestDataSource。JNDI name指定 Java 命名和目录接口(Java Naming and Directory Interface,JNDI)名称。例如,可以使用名称 jdbc/TestDataSource。如果让该域保留为空,那么就根据数据源名称生成 JNDI 名称。例如,数据源名称为 TestDataSource,会生成 JNDI 名称 jdbc/TestDataSource。Description为资源指派一个文本描述。Category指定可以用来对资源进行分类或分组的类别字符串。Statement cache size指定每个连接可以高速缓存的空闲预编译语句的数目。Datasource helper classname指定用于执行特定于数据库的函数的数据存储帮助程序。关系资源适配器(Relational Resource Adapter)在运行时使用这个帮助程序。缺省的 DataStoreHelper 实现类是根据 JDBC 驱动程序实现类而设置的,使用的结构如下:

com.ibm.websphere.rsadapter.DataStoreHelper

例如,如果 JDBC 提供程序是 DB2,那么缺省的 DataStoreHelper 类是 com.ibm.websphere.rsadapter.DB2DataStoreHelper 。如果有必要,可以将它更改成这个 DataStoreHelper 的子类。Connection timeout指定在多长时间(单位为秒)之后连接请求超时并抛出 ConnectionWaitTimeoutException。Maximum connections指定池中可以拥有的物理连接的最大数目。Minimum connections指定池中要保持的物理连接的最小数目。Reap time指定运行池维护线程的时间间隔(单位为秒)。Unused timeout指定在多少时间(单位为秒)之后放弃未用或空闲连接。Aged timeout指定放弃物理连接之前的时间间隔(单位为秒)。Purge policy指定当检测到“失效连接(stale connection)”或“致命的连接错误(fatal connection error)”时该如何清除连接。有效值是 EntirePool 和 FailingConnectionOnly。Component-managed authentication alias在 WebSphere Studio 的服务器配置编辑器中,可以使用 Security 选项卡来定义用户名和密码的 Java 认证和权限扩展(Java Authentication and Authorization Extension,JAAS)别名以连接到后端企业信息系统(Enterprise Information System,EIS)。如果将 Web 应用程序或 EJB 应用程序的部署描述符中的资源认证(res-auth)设置成“Application7”(如 图 2 所示),并且指定了该数据源的 Component-managed authentication alias,那么运行时就会对数据库认证使用用户名和密码的别名。

图 2. 在部署描述符中将 Authentication 设置成“Application”

figure_02.jpgContainer-managed authentication alias这类似于 Component-managed authentication alias。如果将 Web 应用程序或 EJB 应用程序的资源认证(res-auth)设置成“Container”(如 图 3 所示),并且指定了数据源的 Container-managed authentication alias,那么运行时就会对数据库认证使用用户名和密码的别名。

图 3. 在部署描述符中将 Authentication 设置成“Container”

figure_03.jpgContainer-managed persistence指定是否将该数据源用于企业 bean 的容器管理的持久性(container-managed persistence)。如果选中该复选框,那么就为关系资源适配器创建与这个数据源相对应的 CMP Connector Factory。

指定其它资源特性。

数据源的一些特性是特定于供应商的。Type 2 JDBC 驱动程序必需的其它资源特性是 databaseName;DB2 UDB 分布式平台版 V8 以及 DB2 UDB for OS/390 和 z/OS V6 及更高版本的 IBM Type 4 通用 JDBC 驱动程序必需的其它资源特性是 dataBaseName、driverType、serverName 和 portNumber;DB2 UDB for iSeries 的 JTOpen Type 4 JDBC 驱动程序必需的其它资源特性是 serverName。下面几节对此进行了详细描述。

案例 1:创建 DB2 分布式平台版的数据源

我们描述了在 WebSphere Studio 中需要用什么来创建数据源。本节提供了为 DB2 分布式平台版创建数据源的示例。

使用 Type 2 驱动程序

Type 2 驱动程序可以用于 DB2 UDB 的所有版本。 图 4说明了 Type 2 JDBC 驱动程序和 DB2 UDB 分布式平台版之间的连通性。

图 4. Type 2 JDBC 驱动程序和 DB2 分布式平台版之间的连通性

figure_04.gif

如果 WebSphere Studio 和 DB2 安装在同一台机器中,那么 DBC Client CLI 可以通过 DRDA 直接与数据库进行对话。例如,许多 WebSphere Studio 用户在其 Windows 机器上安装了 Studio 和 DB2 个人版。在这种情况下不需要 DB2 Connect。

但是,在一个团队开发环境中,开发人员大都共享中央服务器中的数据库资源。在这种情况下,您必定要在安装 WebSphere Studio 的工作站上备有 DB2 Connect,并且必须在 DB2 Connect 中创建远程数据库的数据库别名。创建了别名并且它对 Java 应用程序和数据源定义透明之后,远程数据库将会象本地数据库那样操作。

本文之所以没有详细介绍如何创建 DB2 分布式平台版的别名,是因为这些步骤很清楚,无需加以说明。不管数据库驻留在本地还是驻留在远程(如果该数据库是个远程数据库,那么假设您在 DB2 Connect 或 DB2 UDB 客户机配置助手(DB2 UDB Client Configuration Assistant)中创建了一个别名),为 DB2 分布式平台版创建数据源的下面这些步骤都是一样的。

本节假设您已经安装了 WebSphere Studio Application Developer 并设置了 WebSphere 测试环境 V5.0。在编辑器中打开 WebSphere 测试环境服务器配置,您可以使用下列步骤设置数据源:

创建 JAAS 别名。

在编辑器中打开服务器配置,单击 Security选项卡。向下滚动窗口到 JAAS Authentication Entries。单击 Add按钮。

给出别名名称(例如 DB2 user),然后填入相应的数据库用户标识和密码,如 图 5所示。单击 OK。

图 5. 创建 JAAS 认证别名

figure_05.jpg

创建 JDBC 提供程序。

切换至 DataSource选项卡。JDBC 提供程序列表中包含了 Default DB2 JDBC Provider。在该列表中突出显示 Default DB2 JDBC Provider。单击 Edit按钮。JDBC 提供程序的设置如 图 6所示。

图 6. 创建 JDBC 提供程序

figure_06.jpg

正如您可以看出的那样, DB2_JDBC_DRIVER_PATH 是一个变量。在大多数情况下,如果在同一台机器上安装了 DB2 Connect 或 DB2 UDB,那么 WebSphere Studio 可以检测出该变量的值。例如,如果您将 DB2 安装在 C:\\Program Files\\SQLLIB 中,则把 DB2_JDBC_DRIVER_PATH 的值设置成 C:\\Program Files\\SQLLIB\\java 。您可以通过单击服务器配置的 Variables 选项卡然后编辑 DB2_JDBC_DRIVER_PATH 的值来手工设置该变量,如 图 7所示。

图 7. 设置 JDBC 路径变量

figure_07.jpg

创建数据源。

在 JDBC 提供程序列表中,突出显示 Default DB2 JDBC Provider,然后在第二个窗格中单击 Add按钮。选择 DB2 JDBC Provider作为 JDBC 提供程序的类型并选择 Version 5.0作为数据源类型,然后单击 Next。

在下一个窗口中,可以配置数据源的常见特性。您可能希望定制 Name、JNDI name 和 Description。如果您的数据库不是本地数据库,那么根据应用程序部署描述符中的 res-auth 设置,从下拉列表中指定 Component-managed authentication alias 或 Container-managed authentication alias,如 图 8所示。单击 Next。

图 8. 指定数据源的特性

figure_08.jpg

指定定制特性。

在 Modify Resource Properties对话框中,只需要设置 databaseName 特性。突出显示 databaseName属性并确保它指向正确的数据库名称(或者,若该数据库驻留在远程服务器中则为数据库别名名称),如 图 9所示。单击 Finish。

图 9. 指定数据库名称

figure_09.jpg

用 CTRL+S保存服务器配置。

使用 Type 4 驱动程序(V8 中的新内容)

DB2 UDB V8 引入了 Type 4 JDBC 驱动程序,它不用安装 DB2 Connect 就可以直接与服务器对话。图 10 显示了 Type 4 JDBC 驱动程序和 DB2 UDB 之间的连通性。Type 4 JDBC 驱动程序支持 DB2 UDB 分布式平台版 V8 以及 DB2 UDB for OS/390 和 z/OS V6 及更高版本。这个 Type 4 驱动程序不支持以前的 DB2 UDB 版本,也不支持两阶段提交。

图 10. Type 4 JDBC 驱动程序和 DB2 分布式平台版之间的连通性

figure_10.jpg

WebSphere Studio V5 目前没有工具可支持使用 Type 4 JDBC 驱动程序创建数据源,虽然在 WebSphere Studio 将来的发行版中计划实现这一支持。要在 WebSphere Studio V5 中使用 Type 4 驱动程序,必须通过将该驱动程序当作用户定义的 JDBC 驱动程序来指定实现类和定制特性。

重要:Type 4 驱动程序需要 WebSphere Application Server 5.01 运行时,撰写本文时还不能下载它。

以下步骤指导您完成这一过程:

在 WebSphere Studio 中打开服务器配置编辑器。

单击 Variables 选项卡。找到变量 DB2_JDBC_DRIVER_PATH 并将其值设置成 DB2 V8 安装的 JDBC 驱动程序文件夹;例如, C:\\Program Files\\SQLLIB\\java 。您将看到该变量在步骤 7 中的 JDBC 提供程序定义中会被用到。

单击 Security选项卡,然后用正确的 DB2 用户标识和密码创建 JAAS 认证别名。

单击 DataSource选项卡。添加一个新的 JDBC 提供程序。选择 User-defined作为数据库类型,并选择 User-defined JDBC Provider作为 JDBC 提供程序类型。单击 Next。

给该 JDBC 提供程序取一个名称,例如 IBM Type 4 JDBC Provider for DB2 Version 8 。

将实现类名设置成 com.ibm.db2.jcc.DB2SimpleDataSource 。

从类路径中除去 ${User-defined_JDBC_DRIVER_PATH}/db2j.jar 。将 ${DB2_JDBC_DRIVER_PATH}/db2jcc.jar 添加到类路径中,其中 DB2_JDBC_DRIVER_PATH 是个变量,我们在步骤 2 中设置了其值。单击 Finish。

添加数据源。您可能希望定制 Name、JNDI name 和 Description。选择 com.ibm.websphere.rsadapter.DB2DataStoreHelper 作为 Datasource helper classname。根据应用程序的部署描述符中的 res-auth 设置,从下拉列表中使用步骤 3 中定义的 JAAS 认证别名来指定 Component-managed authentication alias 或 Container-managed authentication alias。单击 Finish。

添加下列数据源必需的特性。所有特性的类型都是 java.lang.String 。 serverName将该值设置成 DB2 机器的主机名或 IP 地址。portNumber将该值设置成 DB2 服务器侦听对该数据源的连接请求的 TCP/IP 端口号。缺省值是 50000。可以使用下面这个命令来更改侦听端口:

db2 update dbm cfg using svcename portNumber

其中 portNumber是侦听端口,比如 50002。DriverType将该值设置成 4,它表示 Type 4 JDBC 驱动程序。

用 CTRL+S保存服务器配置。

案例 2:创建 DB2 for OS/390® 和 z/OS™ 的数据源

使用 Type 2 驱动程序

使用 Type 2 JDBC 驱动程序创建 DB2 for z/OS 的数据源类似于创建 DB2 分布式平台版的数据源。必须使用 DB2 Connect 或 DB2 UDB 客户机配置助手在本地机器中创建数据库别名。 图 11显示了 Type 2 JDBC 驱动程序和 DB2 UDB for z/OS 之间的连通性。

图 11. Type 2 JDBC 驱动程序和 DB2 for z/OS 之间的连通性

figure_11.jpg

但是,创建驻留在 z/OS 中的远程数据库的本地别名并不象创建 DB2 分布式平台版的本地别名那样简单。下列步骤可以帮助您理解如何在 DB2 Connect 中配置 DB2 UDB for z/OS 的别名。

在系统显示和搜索工具(system display and search facility,SDSF)下找到的系统日志中,找到 DSNL004I 消息并记下所列出的 DOMAIN、LOCATION 和 TCPPORT。您在稍后会需要这些信息。

通过单击 Start =>Programs =>IBM DB2 =>Client Configuration Assistant,在 Windows 平台上启动 DB2 客户机配置助手。

单击 Add...按钮以添加表示主机上数据库的新数据库别名。

在 Add Database 向导中,选择 Source选项卡,然后选择 Manually configure a connection to a database单选按钮。单击 Next。

在 Protocol选项卡下,单击 TCP/IP单选按钮。

选中 The database physically resides on a host or AS/400 system框。

确保选中了 Connect directly to the server。单击 Next。

在 TCP/IP选项卡下,在 Host name域中输入步骤 1 中的 DOMAIN。

在 Port number域中,输入步骤 1 中的 TCPPORT。单击 Next。

在 Database选项卡下,在 Database name域中输入步骤 1 中的 LOCATION。应当会用同一名称自动填充 Database alias域。单击 Next。

在 ODBC选项卡下,取消选择 Register the database to ODBC。单击 Next。

在 Node Options选项卡下,选择 Configure node-options (Optional)复选框并确保 Operating System下拉菜单显示 MVS/ESA®(OS/390 值)。单击 Next。

在 Security Options选项卡下,选择 Configure security options (Optional)复选框和 Host or AS/400 authentication (DCS)单选按钮。单击 Next。

在 Host or AS/400 Options选项卡下,取消选择 Configure host or AS/400 options (Optional)。

单击 Finish按钮。会出现一个确认窗口。通过在 Confirmation 窗口中单击 Test Connection按钮来验证是否可以建立到主机的连接。

出现 Connect To DB2 Database窗口之后,输入相应的具有绑定数据库权限的用户标识和密码。

等 DB2 Message 窗口出现,它指出“The connection test was successful”。单击 OK。

单击 Add...,验证上面步骤 10 中指定的数据库别名是否已添加到客户机配置助手的 Available DB2 Databases 表中所显示的别名列表。单击 Close。

创建数据库别名之后,请按照 案例 1 中所描述的相同步骤在 WebSphere Studio 中创建数据源。使用案例 1(使用 Type 2 驱动程序)步骤 4 中的 databaseName 特性中的新数据库别名。

(对于 V6 和更高版本)使用 Type 4 驱动程序

DB2 UDB 分布式平台版 V8 附带的 Type 4 JDBC 驱动程序还支持与 DB2 UDB for OS/390 和 z/OS V6 及 V7 的连通性。使用 Type 4 JDBC 驱动程序为 DB2 UDB for OS/390 和 z/OS 进行的数据源配置,类似于 案例 1中所描述的 DB2 UDB 分布式平台版配置。

案例 3. 创建 DB2 for iSeries™ 的数据源

使用 Type 2 驱动程序

如 图 12所示,Type 2 JDBC 驱动程序在本地机器中需要 DB2 Connect。数据源的设置与 案例 1中所描述的大致相同。唯一的区别在于用 DB2 Connect 创建别名。下列步骤帮助您在 DB2 Connect 中配置 DB2 UDB for iSeries 的别名。

图 12. Type 2 JDBC 驱动程序和 DB2 for iSeries 之间的连通性

figure_12.jpg

登录到 AS/400® 系统。从命令行运行 WRKRDBDIRE 。可以看到有一些数据库名称。但是只有那个用 *LOCAL 标记的数据库才是物理上驻留在这个 AS/400 系统中的本地数据库。写下 Relational Database 的名称,在 图 13 为 Q1A_DATABASE_SRVR。您在下面的步骤 10 中将需要这一信息。

图 13. 从 iSeries 系统中查找数据库名称

figure_13.jpg

通过单击 Start =>Programs =>IBM DB2 =>Client Configuration Assistant,在 Windows 平台上启动 DB2 客户机配置助手。

单击 Add...按钮以添加表示主机上数据库的新数据库别名。

在 Add Database 向导中,选择 Source选项卡,然后选择 Manually configure a connection to a database单选按钮。单击 Next。

在 Protocol选项卡下,单击 TCP/IP单选按钮。

选中 The database physically resides on a host or AS/400 system框。

确保选中了 Connect directly to the server。单击 Next。

在 TCP/IP选项卡下,在 Host name域中输入 AS/400 机器的主机名或 IP 地址。

在 Port number域中输入 446。单击 Next。

在 Database选项卡下,在 Database name域中输入步骤 1 中的 Relational Database 名称。用同一名称自动填充 Database alias 域。单击 Next。

在 ODBC选项卡下,取消选择 Register the database to ODBC。单击 Next。

在 Node Options选项卡下,选择 Configure node-options (Optional)并确保 Operating System下拉菜单显示 OS/400 值。单击 Next。

在 Security Options选项卡下,选择 Configure security options和 Host or AS/400 authentication (DCS)。单击 Next。

在 Host or AS/400 Options选项卡下,取消选择 Configure host or AS/400 options (Optional)。

单击 Finish按钮。在 Confirmation 窗口中,通过单击 Test Connection按钮来验证是否可以建立至主机的连接。

出现 Connect To DB2 Database窗口之后,输入相应的具有绑定数据库权限的用户标识和密码。

等 DB2 Message 窗口出现,它指出“The connection test was successful”。单击 OK。

单击 Add...,验证上面步骤 10 中指定的数据库别名是否已添加到客户机配置助手的 Available DB2 Database 表中所显示的别名列表。单击 Close。

创建数据库别名之后,请按照 案例 1中所描述的步骤在 WebSphere Studio 中创建数据源。使用案例 1 步骤 4 中的 databaseName 特性中的数据库别名。

使用 JTOpen Type 4 驱动程序

Type 4 驱动程序是 JTOpen 的一部分,它是由 IBM 发行的用于操作 iSeries 的开放源码 Java 工具箱。正如您可以从 图 14看到的那样,JTOpen Type 4 JDBC 驱动程序除了由 Java 虚拟机和 TCP/IP 所提供的支持之外不需要其它客户机支持。

图 14. Type 4 JDBC 驱动程序和 DB2 for iSeries 之间的连通性

figure_14.jpg

下面这些步骤指导您使用 JTOpen Type 4 驱动程序完成 DB2 for iSeries 的数据源配置。

从本文参考资料一节中的链接下载并解压缩 JTOpen。假定您将 JTOpen 解压缩到 C:\\JTOpen ,那么您会发现 jt400.jar 驻留在 C:\\JTOpen\\lib 中。

在 WebSphere Studio 中打开服务器配置编辑器。

单击 Variables 选项卡。添加变量 OS400_TOOLBOX_JDBC_DRIVER_PATH 并将其值设置成 jt400.jar 的位置(例如,如果将 JTOpen 解压缩到 C:\\JTOpen 文件夹,则该值为 C:\\JTOpen\\lib )。您将看到将在后面的 JDBC 提供程序定义中用到该变量。

单击 Security选项卡,并用相应的 AS/400 系统用户标识和密码创建 JAAS 认证别名。

单击 DataSource选项卡。添加一个新的 JDBC 提供程序。选择 IBM DB2作为数据库类型,并选择 DB2 UDB for iSeries (Toolbox)作为 JDBC 提供程序类型。如果您需要该数据源支持两阶段提交,则选择 DB2 UDB for iSeries (Toolbox XA)作为提供程序类型。单击 Next。

给该 JDBC 提供程序取一个名称,例如 JTOpen AS400 DB2 JDBC Provider。您将看到自动选择了实现类名,并且已将实现类的类路径设置成了 ${OS400_TOOLBOX_JDBC_DRIVER_PATH}/jt400.jar,其中 OS400_TOOLBOX_JDBC_DRIVER_PATH 是个变量,我们在步骤 3 中设置了它的值。单击 Finish。

添加数据源。您可能希望定制 Name、JNDI name 和 Description。(根据 在 WebSphere Studio 中配置数据源中所描述的应用程序部署描述符中的 res-auth 设置)从下拉列表中用步骤 5 中定义的 JAAS 认证别名指定 Component-managed authentication alias 或 Container-managed authentication alias。单击 Next。

在下一屏中,唯一必需的特性是 serverName。将它设置成 AS400 系统的主机名或 IP 地址。您可能还希望根据自己的需要更改其它特性。单击 Finish。

用 CTRL+S保存服务器配置。

编写使用数据源的 Java 示例

假定您已经安装了 DB2 for Linux、UNIX 和 Windows 并创建了 SAMPLE 数据库,您可以下载这个使用数据源的 样本代码。该代码是 J2EE 1.3 EAR 格式的,可以将它导入到 WebSphere Studio 并在 WebSphere 测试环境 V5 中运行它。

EAR 文件中的 Servlet test.servlet.DepartmentListServlet 将列出 DEPARTMENT 表中的所有记录。清单 1 是该 Servlet 中 doGet() 方法的代码片段。

重要:清单 1 使用了 SQL 语句 SELECT * FROM DEPARTMENT ,它没有对表使用限定符。如果您用于连接数据库的标识不同于表 DEPARTMENT 的创建者,那么您需要在这条 SQL 语句中将创建者用户标识添加到表名称中。

清单 1. 样本代码中的 doGet() 方法java.sql.Connection connection = null;

java.sql.ResultSet rs = null;

try {

// Locate the naming initial context

javax.naming.InitialContext ctx =

new javax.naming.InitialContext();

/* perform a JNDI lookup for the DataSource. The JNDI name in the

code is a resource reference and is not necessary the same as the

JNDI name you defined for the DataSource. You need to bind this

resource reference to the real JNDI name in the deployment

descriptor . Please follow the installation instruction. */

javax.sql.DataSource myDS =

(javax.sql.DataSource) ctx.lookup("java:comp/env/jdbc/MyDS");

// create a connection from the DataSource

connection = myDS.getConnection();

// create a query from the connection

java.sql.Statement query = connection.createStatement();

/* create the result set. You probably need to add the qualifier

to the table name in the SQL statement */

rs = query.executeQuery("SELECT * FROM DEPARTMENT");

/* the following code print out all the items*/

java.io.PrintWriter out = resp.getWriter();

out.println("

Department List");

out.println("

DEPARTMENT LIST

");

out.println("

out.println("

Department No");

out.println("

Department Name");

out.println("

Manager No");

while (rs.next()) {

String deptNo = rs.getString("DEPTNO");

String name = rs.getString("DEPTNAME");

String mgrNo = rs.getString("MGRNO");

out.println("

" + deptNo + "");

out.println("

" + name + "");

out.println("

" + mgrNo + "");

}

out.println("

");

out.println("");

rs.close();

connection.close();

} catch (javax.naming.NamingException e) {

System.out.println("Name not found!");

System.out.println(e);

} catch (java.sql.SQLException e) {

System.out.println("SQLException!");

System.out.println(e);

} finally {

if (rs != null) {

try {

rs.close();

} catch (Exception e) {

System.out.println(

"Failed to close the ResultSet after the failure");

}

}

if (connection != null) {

try {

connection.close();

} catch (Exception e) {

System.out.println(

"Failed to close the connection after the failure");

}

}

}

按照下面这些步骤在 WebSphere Studio 中运行该样本代码:

将 EAR 文件导入到 WebSphere Studio 中。您将在工作空间中看到一个名为 DataSourceTest 的企业项目和一个名为 DataSourceTestWeb 的 Web 项目。

创建一个服务器实例和服务器配置。

创建 SAMPLE 数据库的数据源。可以为该数据源选择任何想要的 JNDI 名称,例如 jdbc/sample 。当您完成时请记着关闭编辑器。

如果用于连接数据库的标识不同于表 DEPARTMENT 的创建者,那么您需要在 servlet test.servlet.DepartmentListServlet 的 SQL 语句中将创建者用户标识添加到表名称中。

打开 DataSourceTestWeb 项目的部署描述符。单击 References选项卡。如 图 15 所示,将 Java 代码中的数据源引用 jdbc/MyDS 绑定到步骤 3 中所定义的数据源的实际全局 JNDI 名称。保存部署描述符。

图 15. 绑定数据源

figure_15.jpg

将企业项目 DataSourceTest 项目添加到服务器配置中。

启动服务器。

在浏览器中输入 http://localhost:9080/DataSourceTestWeb/DepartmentListServlet 作为 URL。应该能看到如 图 16 所示的输出。

图 16. 样本数据库结果

figure_16.jpg

结束语

本文描述了在 WebSphere Studio 中为 IBM DB2 通用数据库系列产品配置数据源的步骤。WebSphere Studio 提供了一个非常棒的用户界面,用于在服务器配置编辑器中定义数据源。在 JDBC 的帮助下,IBM DB2 UDB 系列产品与 IBM WebSphere 运行时无缝集成在一起。用 Type 2 驱动程序配置数据源对于所有系列产品而言都一致。唯一的例外是,当您连接到 iSeries 或 zSeries 时,必须在 DB2 Connect 中创建远程数据库的别名。IBM 有 Type 4 JDBC 驱动程序,它支持与 DB2 UDB 分布式平台版 V8、DB2 UDB for OS/390 和 z/OS V6 及更高版本的连通性。JTOpen 也有用于 DB2 UDB for iSeries 的 Type 4 JDBC 驱动程序,建议使用它来替代 iSeries Type 2 驱动程序。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值