日期:2014-05-16  浏览次数:20420 次

DB2的JDBC连接驱动与URL总结
依照 JDBC 规范,有四种类型的 JDBC 驱动程序体系结构
??? Type 1:这类驱动程序将 JDBC API 作为到另一个数据访问 API 的映射来实现,如开放式数据库连通性(Open Database Connectivity,ODBC)。这类驱动程序通常依赖本机库,这限制了其可移植性。JDBC-ODBC 桥驱动程序就是 Type 1 驱动程序的最常见的例子。
??? Type 2:这类驱动程序部分用 JAVA 编程语言编写,部分用本机代码编写。这些驱动程序使用特定于所连接数据源的本机客户端库。同样,由于使用本机代码,所以其可移植性受到限制。
??? Type 3:这类驱动程序使用纯 JAVA 客户机,并使用独立于数据库的协议与中间件服务器通信,然后中间件服务器将客户机请求传给数据源。
??? Type 4:这类驱动程序是纯 JAVA,实现针对特定数据源的网络协议。客户机直接连接至数据源。
?
下面只讨论JDBC驱动连接DB2数据
?

第一种:通用连接方式, 驱动:db2jcc.jar,数据库字符集必须设置为utf-8 (推荐使用这种方式)
????驱动类:com.ibm.db2.jcc.DB2Driver
??? JDBC连接URL:jdbc:db2://ServerIP:Port/databasename
??? 说明:这种连接方式不需要DB2 V9开始分离出了客户端和服务器端,先前的版本没有单独的客户端软件,推荐使用这种连接方式。
例子:
? jdbc.driverClassName=com.ibm.db2.jcc.DB2Driver
? jdbc.url=jdbc:db2://ip:port/DBNAME

?
第二种:客户端软件连接方式
??? 驱动类:com.ibm.db2.jcc.DB2Driver
??? JDBC连接URL:jdbc:db2:<数据库在本地别名>
??? 说明:这种连接方式需要用户安装DB2客户端或者服务器端软件。然后利用DB2软件,连接到服务器上,并给所连接的数据库启一个别名,作为数据库表示,公给本地应用软件使用,这对本地软件来说是透明的。这适合小型局域网内。
?
下面给出两个连接实例
第一种:通用连接方式(推荐)
driverClassName="com.ibm.db2.jcc.DB2Driver"
jdbc:db2://192.168.0.2:50000/zfvims
DB2在windows下默认端口是50000
?
第二种:客户端软件连接方式
driverClassName="com.ibm.db2.jcc.DB2Driver"
url="jdbc:db2:zfvims"

有两种不同的方法可以区分 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 应用程序或多层应用程序,是开发人员一个不错的选择。