DB2 JDBC Driver

未知
Java
跨平台
IBM
2008-09-09

依照 JDBC 规范,有四种类型的 JDBC 驱动程序体系结构:

  • Type 1:这类驱动程序将 JDBC API 作为到另一个数据访问 API 的映射来实现,如开放式数据库连通性(Open Database Connectivity,ODBC)。这类驱动程序通常依赖本机库,这限制了其可移植性。JDBC-ODBC 桥驱动程序就是 Type 1 驱动程序的最常见的例子。

  • Type 2:这类驱动程序部分用 JAVA 编程语言编写,部分用本机代码编写。这些驱动程序使用特定于所连接数据源的本机客户端库。同样,由于使用本机代码,所以其可移植性受到限制。

  • Type 3:这类驱动程序使用纯 JAVA 客户机,并使用独立于数据库的协议与中间件服务器通信,然后中间件服务器将客户机请求传给数据源。

  • Type 4:这类驱动程序是纯 JAVA,实现针对特定数据源的网络协议。客户机直接连接至数据源。

对于DB2 UDB V7.2来说,它不支持 Type 1 和 Type 4 的驱动程序,但是提供了分别支持 Type 2 和 Type 3 的驱动程序。

示例如下:

两种驱动程序均随产品安装由 db2java.zip 提供。

  • COM.ibm.db2.jdbc.app.DB2Driver

这是一种 Type 2 的 JDBC 驱动程序,它通过 DB2 本地客户机库的帮助建立和 DB2本地数据库或是远程数据库的连接(事先将远程数据库编目到本地)。因此,我们必须在应用系统所在的机器上同时部署 DB2 本地客户机库,这也许是它最大的一个不足之处。

使用格式如下:

Driver Name:COM.ibm.db2.jdbc.app.DB2Driver

URL Pattern:jdbc:db2:databasename

databasename: 需要访问的数据库名

  • COM.ibm.db2.jdbc.net.DB2Driver

这是一种 Type 3 的 JDBC 驱动程序,它通过与一台已经部署了 DB2 本地客户机库的机器通信来建立和 DB2 远程数据库的连接。

使用格式如下:

Driver Name:COM.ibm.db2.jdbc.net.DB2Driver

URL Pattern:jdbc:db2:ServerIP:databasename

ServerIP: 需要访问的数据库所在机器IP地址

databasename: 需要访问的数据库名

(目标DB2系统侦听该服务于默认端口6789,否则还需要在 URL Pattern 中指定目标端口号)

对于 DB2 UDB V8.1 来说,它仍然不支持 Type 1 的驱动程序。同时,它在 DB2 UDB V8.1的基础上,新增加了对 Type 4 驱动程序的支持。

示例如下:

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 应用程序或多层应用程序,是开发人员一个不错的选择。

加载中

评论(1)

走位风骚闪着腰
走位风骚闪着腰
连接失效了! DB2 JDBC Driver

暂无资讯

1
回答
sqoop连接DB2 import 时报错,Connection timed out !!!

sqoop连接DB2导入数据至HDFS时,报错,显示连接超时. 用list-table命令连接没有问题,结果正确; 测试过DB2远程连接,没有问题,tel...

2016/03/02 17:34
1
回答
java.sql.SQLException: No suitable driver found for jdbc:db2://173.31.103.225:50000/xxx

java.sql.SQLException: No suitable driver found for jdbc:db2://173.31.103.225...

2017/04/22 14:19
16
回答
Druid 连接DB2不成功

配置信息: #db2 diver_name=COM.ibm.db2.jdbc.app.DB2Driver url==jdbc:db2://192.168....

2013/01/23 11:15
4
回答
Java连接DB2数据库遇到诡异问题
wenshao 的回答 2013/07/15 22:37
最佳答案
目前市面上的连接池,只有两个连接池支持ExceptionSorter(druid和jboss-datasource),ExceptionSorter的作用是识别Fatal Exception,及时把"bad-connection"从连接池中去掉。但是druid和jboss都没对DB2做Exce...
4
回答
druid db2 com.ibm.db2.jcc.DB2Driver

@简单的牛牛 你好,想跟你请教个问题: 测试环境用的MySQL,连接一切正常,根据常见问题列表https://github.com/AlibabaTech...

2013/07/01 16:51
1
回答
使用 JDBC 连接不同版本 DB2 数据库的兼容性问题

本文通过实验介绍了 JDBC 应用在不同版本 DB2 系统之间迁移的问题,探讨彼此的兼容性,并就存在的问题给出了解决办法。 关系数据库在您的电子商务应用中...

2008/11/14 19:44
2
回答
jboss连接db2,jdbc驱动问题?

之前发过一个贴,是关于jboss连接db2数据库的问题,可惜没人解答,后来自个解决了,换了连接注册的驱动就可以了,但是还是有点不明白,我db2是8.2的版...

2012/12/27 14:30
5
回答
DB2 查询报字段太长的问题

在开发的过程中遇到DB2 的一个问题:有一个视图,大概有200个字段(在页面展示都要用到),我使用Select 字段1,.....字段200 from t...

2011/03/31 16:10
11
回答
db2 8.1 jdbc 连接问题!

代码: package test.util; import java.sql.Connection; import java.sql.DriverMan...

2010/09/02 08:49
20
回答
请教有关C/S结构的JDBC连接池的问题

最近在开发一个Client/Server JDBC连接DB2的系统,Client采用JAVA+Dbutils。 现在碰到一个问题是,每次Client要查询...

2010/08/12 16:28

没有更多内容

加载失败,请刷新页面

暂无博客

返回顶部
顶部