转自 http://rainbow686.iteye.com/blog/63100
昨天在用java链接db2的数据库时发现以前没有注意的一些问题,之前链接db2的jdbc通常是:
JDBC Driver:COM.ibm.db2.jdbc.net.DB2Driver
JDBC URL:jdbc:db2://127.0.0.1:6789/sample
组合后也就是:
Class.forName( ” com.ibm.db2.jdbc.net.DB2Driver ” );
String url = ” jdbc:db2://192.9.200.108:6789/SAMPLE “
Connection conn = DriverManager.getConnection( url, sUsr, sPwd );
这是我们通常意义上所说的type3纯java驱动,这类驱动程序使用纯 JAVA 客户机,并使用独立于数据库的协议与中间件服务器通信,然后中间件服务器将客户机请求传给数据源。这个中间件服务器就是安装DB2后在服务中显示为”DB2 JDBC小应用程序服务器–对DB2应用程序提供JDBC服务支持”(当然我是在windwos上安装DB2的),务必使这个服务启动,否则type3型的JDBC是链接不上的。
此外用的比较多的是type4型的纯java驱动
JDBC Driver:com.ibm.db2.jcc.DB2Driver
JDBC URL:jdbc:db2://127.0.0.1:50000/sample
下面是一段IBM网站的引用:
依照 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 应用程序或多层应用程序,是开发人员一个不错的选择。
关于DB2 JDBC驱动的jar包:
db2java.zip包含两个驱动类COM.ibm.db2.jdbc.app.DB2Driver.class(第二类驱动,现在不推荐使用),另一个COM.ibm.db2.jdbc.net.DB2Driver.class(第三类驱动,也叫applet驱动,网络驱动)
db2jcc.jar是IBM推荐使用的,其包含一个新的第二类驱动和一个第四类驱动,二者通过uril来区分
分享到:
相关推荐
JDBC连接DB2数据库需要的jar包 JDBC连接DB2数据库需要的jar包 JDBC连接DB2数据库需要的jar包
JDBC连接DB2数据库详解 — IT技术
包括JDBC用来连接db2的db2jcc_license_cu.jar,db2jcc4.jar
用JDBC连接DB2的例子: 用JDBC连接DB2的例子: import java.sql.*; import COM.ibm.db2.jdbc.app.*; public class DB2Test { public static void main(String[] args) { String JDBCDriver = ...
压缩包中有 db2jcc.jar、db2jcc_license_cu.jar 两个 jar 包。用于连接db2数据库的驱动
连接DB2包,DB2与JAVA连接驱动,JDBC驱动,里面有三个包,和方法
NULL 博文链接:https://zscomehuyue.iteye.com/blog/651951
JDBC封装类 连接数据库,连接的内容 保存在.properties 文件中 使用myeclise 导入即可
java连接DB2jdbc所有驱动
经常有人问我java对DB2数据库的连接很麻烦,特别是连接字符串和连接驱动,现在我自己写了个jdbc对DB2的操作(含jar包在里面),非常全,大家下了之后就可以直接拷贝到你项目中应用了
DB2数据驱动jar包,用于java jdbc连接DB2数据库
DB2 jdbc驱动 ,使用java连接db2数据库需要jdbc驱动。 DB2 jdbc驱动 ,使用java连接db2数据库需要jdbc驱动。
关于DB2数据库的JDBC连接文章有很多,比较出名的有诸如“JDBC数据库连接大全”和“JSP的DB2连接数据库”,虽然都是很详细的资料,也都说解决了前人没有解决的问题,但还是有许多纰漏。我就这两天的经验给大家写一篇...
java 连接 DB2 jdbc 所有 驱动 java 连接 DB2 jdbc 所有 驱动 在DB2的java目录下的所有驱动
这个是购买的IBM正版DB2数据库中的驱动包,无限制连接,希望能对大家有帮助,其中包括: db2jcc.jar db2jcc_license_cu
连接DB2驱动文件,适配JDK1.8,对应官网10.5.FP8,已测试通过
db2java.jar db2jcc.jar db2jcc_javax.jar db2jcc_license_cu.jar,支持db2v9.1以上最新jdbc连接
JDBC连接各种数据库大全 JDBC连接DB2 JDBC连接Microsoft SQLServer(microsoft) JDBC连接Sybase JDBC连接MySQL JDBC连接PostgreSQL JDBC连接Oracle JDBC连接ODBC
链接DB2数据库的时候采用的JDBC驱动包
常用JDBC连接数据库方法总结如下: 一、DB2 Class.forName("Com.ibm.db2.jdbc.net.DB2Driver") String url="jdbc:db2://dburl:port/DBname" cn = DriverM