昨天在用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来区分
参考信息:
http://www.ibm.com/developerworks/cn/db2/library/techarticles/dm-0512kokkat/
http://www.ibm.com/developerworks/cn/db2/library/techarticles/0402chenjunwei/0402chenjunwei.html
分享到:
相关推荐
IBM DB2 JDBC驱动是连接Java应用程序与IBM DB2数据库的关键组件。它遵循Java Database Connectivity (JDBC) API标准,使得Java开发者能够通过编写Java代码来执行SQL查询、更新数据库记录以及进行其他数据库操作。在...
在这个场景中,"DB2 JDBC jar包驱动"指的是一个包含DB2特定JDBC驱动的Java归档(jar)文件,该文件使得Java开发者能够利用 JDBC API 来连接、查询和操作DB2数据库。 首先,我们需要理解JDBC驱动的工作原理。JDBC...
DB2 JDBC驱动是IBM公司为连接其DB2数据库系统提供的一种Java数据库连接(JDBC)驱动程序。JDBC驱动程序是Java程序员与各种数据库进行交互的桥梁,它允许Java应用程序通过标准的Java API来访问数据库。在本压缩包中,...
DB2 JDBC驱动是Java应用程序与IBM DB2数据库交互的关键组件,它实现了Java Database Connectivity (JDBC) API,允许Java开发者在应用程序中执行SQL语句、管理数据库事务以及处理结果集。在本压缩包中,包含了以下三...
DB2的JDBC驱动包是连接IBM的DB2关系型数据库管理系统的重要组件,它使得Java应用程序能够通过Java Database Connectivity (JDBC) API与DB2进行交互。这些驱动程序提供了必要的接口和类,允许开发者在Java环境中执行...
db2 jdbc 驱动db2 jdbc 驱动db2 jdbc 驱动db2 jdbc 驱动db2 jdbc 驱动db2 jdbc 驱动db2 jdbc 驱动db2 jdbc 驱动db2 jdbc 驱动db2 jdbc 驱动db2 jdbc 驱动db2 jdbc 驱动db2 jdbc 驱动db2 jdbc 驱动db2 jdbc 驱动db2 ...
DB2提供了两种JDBC驱动,即db2jcc和db2jcc4。db2jcc4是更新的版本,通常包含更多的功能和性能优化。在描述中提到的"db2jcc4" jar文件,是专门为DB2 11.5设计的JDBC类型4驱动,它是一个纯Java实现,无需本地库即可...
"db2jcc.jar"和"db2jcc4.jar"是IBM为DB2提供的JDBC驱动程序,它们都是符合JDBC规范的类型4纯Java驱动,用于在Java应用程序中连接到DB2数据库。这两个文件的主要区别在于它们的兼容性: 1. **db2jcc.jar**:这是面向...
DB2的JDBC驱动是IBM公司为连接到DB2数据库而设计的一种Java数据库连接(JDBC)驱动程序。它是Java应用程序与DB2数据库之间通信的关键组件,使得开发人员能够使用Java语言来执行SQL语句、处理结果集以及管理数据库...
DB2 JDBC驱动是IBM DB2数据库系统与Java应用程序之间通信的桥梁,允许Java开发者通过编写Java代码来访问和操作DB2数据库。JDBC(Java Database Connectivity)是Java平台中的一个标准API,它提供了统一的接口,让...
本主题将深入讲解关于“JAVA数据库驱动 DB2 JDBC驱动”的相关知识点。 1. **JDBC概述** - JDBC(Java Database Connectivity)是Java平台中用于与关系数据库交互的一组接口和类,它提供了标准化的API,使得开发者...
DB2 JDBC驱动程序是IBM公司提供的Java数据库连接(JDBC)接口,用于与DB2数据库进行通信。在本文中,我们将深入探讨DB2 JDBC驱动、其功能、如何使用以及它在数据库开发和客户端连接中的作用。 首先,让我们理解什么...
DB2 JDBC驱动程序是连接Java应用程序到IBM DB2数据库的关键组件。这些驱动程序允许Java开发者通过JDBC(Java Database Connectivity)API与DB2数据库进行交互,执行SQL查询、事务处理和其他数据库操作。在提供的文件...
在"db2_db2driver_for_jdbc_v11.5.tar.gz"中,主要包含的文件可能有JDBC驱动的jar文件,如`jdbc_sqlj`,这个文件可能是DB2 JDBC驱动的核心组件,用于Java程序加载并使用DB2的JDBC驱动。使用这个驱动,开发者可以编写...
DB2 JDBC驱动程序是IBM公司提供的用于连接Java应用程序与DB2数据库的关键组件。JDBC(Java Database Connectivity)是Java编程语言中的一个标准API,它允许Java应用程序通过网络进行数据交互,而DB2 JDBC驱动则是这...
### DB2 JDBC驱动程序及其支持的功能简介 #### 一、JDBC驱动程序概述 随着JAVA技术的广泛应用,越来越多的企业选择使用JAVA程序来访问数据库。为了实现这一目标,必须借助JDBC(Java Database Connectivity)驱动...
2. **db2jcc.jar** - 这是DB2 JDBC驱动的早期版本,可能不包含所有JDBC 4.0特性。虽然db2jcc4.jar通常推荐用于新项目,但db2jcc.jar可能在某些旧系统或有特定兼容性需求的场景中仍然有用。这两个JAR文件的主要区别...
DB2 JDBC驱动程序主要分为四种类型: 1. Type 1 (JDBC-ODBC Bridge):这是一个间接连接,通过ODBC驱动程序来连接数据库。这种类型的驱动适合于已经存在ODBC数据源的情况,但效率相对较低。 2. Type 2 (Native-API ...
DB2 JDBC驱动程序是实现这一连接的关键,它允许Java应用程序与DB2数据库进行通信。本篇将详细介绍如何使用Java连接DB2数据库以及涉及的JDBC驱动。 首先,DB2提供了多种JDBC驱动类型,包括Type 1、Type 2、Type 3和...