依照 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数据
第一种:通用链接方式
驱动类:com.ibm.db2.jcc.DB2Driver
JDBC链接URL:jdbc:db2://ServerIP:Port/databasename
说明:这种链接方式不须要DB2 V9开始分离出了客户端和服务器端,先前的版本没有单独的客户端软件,推荐使用这种链接方式。
第二种:客户端软件链接方式
驱动类: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 应用程序或多层应用程序,是开发人员一个不错的选择。