WEB开发网
开发学院数据库DB2 使用JDBC连接不同版本DB2的兼容性问题 阅读

使用JDBC连接不同版本DB2的兼容性问题

 2007-11-02 21:41:35 来源:WEB开发网   
核心提示: 示例如下: DB2 UDB V8.1 仍然支持上面所述 V7.2 支持的两种驱动程序,随产品安装由 db2java.zip 提供,使用JDBC连接不同版本DB2的兼容性问题(2),但具体实现上和 DB2 UDB V7.2 产品发布的包有所不同,所以可能存在下文所要进行实验验证的兼容性问题,我们还可以使用 DB

   示例如下:

   DB2 UDB V8.1 仍然支持上面所述 V7.2 支持的两种驱动程序,随产品安装由 db2java.zip 提供,但具体实现上和 DB2 UDB V7.2 产品发布的包有所不同,所以可能存在下文所要进行实验验证的兼容性问题。

   除了 COM.ibm.db2.jdbc.app.DB2Driver 之外,DB2 UDB V8.1 还提供了另外一种 Type 2 的驱动程序,随产品安装由 db2jcc.jar 提供。其实现包名是 com.ibm.db2.jcc.DB2Driver,在DB2 UDB V8.1 最初的实现中,此驱动程序只用于使用 Type 4 驱动程序体系结构与 DB2 服务器进行直接的 JAVA 连接,这类驱动程序由于不需要另外部署 DB2 本地客户机库以及性能相对较好而收到开发人员的欢迎。自从 DB2 UDB V8.1.2(安装了 FixPack 2)之后,开发人员还可以在 Type 2 体系结构中使用该驱动程序,以提高本地应用程序的性能。

   这里,两种驱动程序具有相同的实现类名称,有两种不同的方法可以区分 DB2 系统在内部最终会实例化哪个驱动程序:

   使用不同的 URL Pattern 来区分两种不同的驱动程序
   Type 2 Driver URL Pattern:jdbc:db2:databasename

   这当中 databasename 是需要访问的数据库名

   Type 4 Driver URL Pattern:jdbc:db2://ServerIP:50000/databasename

   这当中 ServerIP 是需要访问的数据库所在机器IP地址,databasename 是需要访问的数据库名,DB2 服务器会在默认端口 50000 上进行侦听。

   使用连接特性来区分数据库连接是否会使用 DB2 本地客户机库,或者是使用JAVA 直接连接。

   DB2 UDB V8.1 新增加支持的这种 Type 4 驱动程序,常被称为“通用 JDBC 驱动程序”,是一种与驱动程序类型连通性或目标平台无关的抽象 JDBC 处理器,因此常用于进行分布式和本地 DB2 UDB 访问。因为“通用 JDBC 驱动程序”独立于任何特定 JDBC 驱动程序类型连通性或目标平台,所以它在一个 DB2 UDB 驱动程序实例中同时支持所有 JAVA 连通性(Type 4 驱动程序)和基于 JNI 的连通性(Type 2 驱动程序)。该驱动程序可以用于独立 JAVA 应用程序或多层应用程序,是开发人员一个不错的选择。

   兼容性实验

   上文前后介绍了很多种 DB2 系统支持的 JDBC 驱动程序,想必您的应用中已经采用了其中的某一种或几种,而在迁移您的应用时您一定希望最好不要更改原有的程序。这个要求能办到么?如果您的应用中所采用的驱动程序对不同版本的 DB2 系统进行连接的兼容性足够好,这个要求就一定能办到。那让我们带着这个疑问,来进行下面这个兼容性实验吧。

   实验环境:

   为了完成这个实验,我部署了两台机器,就分别命名为 Machine A 和 Machine B 吧。

   Machine A 上部署了 DB2 UDB V7.2.7(安装了 FixPack 7),它可能和您应用环境中的旧版本 DB2 系统很类似;Machine B 上我部署了 DB2 UDB V8.1.4(安装了 FixPack 4,这是目前公开发布的最新的补丁),这也许和您升级后的最新 DB2 系统相仿。

   相应的,在两台机器上,我都安装了 DB2 命令行工具(CLP),DB2 控制中心(Control Center),DB2 命令中心(Command Center)等工具以便能够对 DB2 系统进行配置和监控。

   实验中当需要编写代码的时候,我采用的工具是 WSAD V5.0(WebSphere Studio Application Developer),这是个不错的开发工具。

   实验目的:

   我们带着上文碰到的这个问题来做这个实验。因此,我们分别采用上文中提及的各种 JDBC驱动程序尝试建立与 DB2 本地数据库和远程数据库的连接。如果一切顺利,这还只是完成了实验第一步。假设建立数据库连接成功,我们会紧接着尝试对这个数据库进行各种操作,先是测试查询操作,这是最常见的数据库操作;然后会是插入,更新,删除等 DML 操作,它们会改变数据库中存储的数据。如果这些都没有问题的话,我们还需要继续尝试诸如新建,修改,删除数据表等 DDL 操作。

   为了增强实验的比较效果和准确性,我们除了会编写代码来进行各种测试,还会使用 DB2 命令行工具(CLP)和 DB2 命令中心(图形化管理工具)来进行相同的操作,并且就运行结果进行比较。

   明确了实验目的,下面就来开始我们的实验吧。

   实验过程:

   A:实验的第一步是测试 DB2 UDB 不同版本随产品发布的 JDBC 驱动程序对该版本自身的兼容性。

   这里我先编写代码完成了各项测试目的,一切顺利。

   然后,我使用 DB2 命令行工具(CLP)来重复这些测试。

   可以通过在命令行中键入 db2cmd 进入 DB2 CLP,然后在提示符下键入 db2,就会进入DB2 CLP 的交互界面。

   如下图:

使用JDBC连接不同版本DB2的兼容性问题(图一)

   这个命令行工具可以完成图形化工具所做的所有管理配置工作,并且可以节省很多内存资源。

   实验中,我们首先需要用命令连接到一个数据库:

   示例如下,在命令行提示符后键入

   CONNECT TO SAMPLEDBUSER db2adminUSING password

   该命令表示使用用户名为 db2admin,密码为 password,连接至数据库 SAMPLEDB,紧接着会返回连接后的数据库相关信息。然后就可以在命令行提示符后直接键入各种 DDL 或 DML 语句来执行各种操作。

   最后,我们还可以使用 DB2 UDB 随产品发布的一个图形化管理工具――命令中心(Command Center)来验证我们的实验。

使用JDBC连接不同版本DB2的兼容性问题(图二)

   可以参照上图启动命令中心,其相关操作请参见产品文档。

上一页  1 2 3 4  下一页

Tags:使用 JDBC 连接

编辑录入:coldstar [复制链接] [打 印]
赞助商链接