`

jdbc链接db2的问题!转

    博客分类:
  • db2
阅读更多

转自 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数据库详解

    JDBC连接DB2数据库详解 — IT技术

    JDBC连接db2驱动包,包含db2jcc_license_cu.jar,db2jcc4.jar

    在Java编程环境中,JDBC(Java Database Connectivity)是用于与各种数据库进行交互的标准接口。...理解并熟练掌握JDBC连接DB2驱动的使用,对于Java开发者来说是至关重要的,尤其是在开发与数据库交互的应用程序时。

    通过JDBC通过java连接DB2数据库

    ### 通过JDBC使用Java连接DB2数据库的关键知识点 #### JDBC简介 JDBC(Java Database Connectivity)是一种用于执行SQL语句的Java API,它可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成...

    JDBC连接DB2数据库需要的jar包

    "JDBC连接DB2数据库需要的jar包"这一主题,就是要讨论为了实现Java与DB2之间的通信,我们需要引入哪些JDBC驱动库。 首先,DB2提供了兼容JDBC标准的驱动程序,主要分为四种类型: 1. **Type 1(JDBC-ODBC...

    db2 jdbc 通过客户端连接db2

    DB2 JDBC 通过客户端连接DB2是数据库管理中常见的操作,尤其在Java开发环境中。JDBC(Java Database Connectivity)是Java编程语言与各种数据库交互的标准接口。本篇将深入探讨如何利用DB2 JDBC驱动程序建立从Java...

    JDBC 连接db2 v9工程

    **JDBC连接DB2 V9工程详解** 在Java开发中,数据库操作是不可或缺的一部分,而JDBC(Java Database Connectivity)是Java与各种数据库交互的标准接口。本教程将深入讲解如何利用JDBC技术来连接和操作IBM DB2 V9...

    JDBC连接db2数据库.zip

    在本例中,"JDBC连接db2数据库.zip"是一个压缩包,包含了连接IBM DB2数据库所需的JDBC驱动。 DB2是IBM公司开发的一款关系型数据库管理系统,广泛应用于企业级应用,支持多种操作系统平台,如Windows、Linux、Unix和...

    jdbc连接db2

    ### JDBC 连接 DB2 的实现与解析 #### 一、引言 在现代软件开发中,数据库操作是一项基本且重要的任务。Java Database Connectivity (JDBC) 是 Java 平台上的标准数据库访问接口,它允许应用程序通过标准 SQL 语句...

    DB2 11.5版本 jdbc db2jcc db2jcc4驱动

    在DB2 11.5版本中,JDBC(Java Database Connectivity)驱动是连接Java应用程序与DB2数据库的关键组件。JDBC驱动允许Java代码通过标准接口与各种数据库进行交互,包括查询、更新和操作数据。 DB2提供了两种JDBC驱动...

    JDBC调DB2存储过程

    通过以上步骤,我们不仅了解了如何使用JDBC连接DB2数据库,还学习了如何通过JDBC调用DB2中的存储过程,并处理其返回的结果集。这种技术在实际开发中非常实用,特别是在需要执行复杂操作或重复使用的逻辑时。希望本文...

    连接DB2包,DB2与JAVA连接驱动,JDBC驱动

    DB2是一款由IBM开发的关系型数据库管理系统,广泛应用于企业级数据存储和管理。...总的来说,连接DB2与Java的关键在于正确配置JDBC驱动,以及熟练运用`DriverManager.getConnection()`和相关的SQL执行方法。

    java连接DB2jdbc所有驱动

    Java通过JDBC(Java Database Connectivity)来...综上所述,使用Java JDBC连接DB2数据库涉及多个环节,包括驱动加载、连接创建、SQL执行以及资源关闭。理解这些概念和步骤对于进行Java与DB2之间的数据交互至关重要。

    JDBC连接DB2驱动包(公司授权正版驱动)

    本资源提供的“JDBC连接DB2驱动包”是IBM官方授权的正版驱动程序,确保了与DB2数据库连接的稳定性和安全性。这个驱动包包括两个主要的组件: 1. **db2jcc.jar**:这是DB2的JDBC类型4驱动程序,它是一个纯Java实现,...

    自己写的jdbc对DB2的操作(含jar包在里面)

    在描述中提到,由于Java连接DB2数据库时涉及的连接字符串和驱动配置可能会困扰初学者,所以作者提供了一个完整的解决方案,简化了这个过程。这意味着这份代码应该包含了处理这些复杂性的逻辑,使得用户可以直接将...

    JDBC连接DB2数据库详解.doc--转载

    在本文中,我们将深入探讨如何使用JDBC连接到IBM的DB2数据库。 首先,JDBC是Java的一部分,无需额外安装,只需在程序中引入`import java.sql.*;`即可使用其功能。要连接到DB2数据库,你需要知道连接字符串。对于...

    DB2 v10.5.0.8 jdbc驱动 官方版

    "db2jcc.jar"和"db2jcc4.jar"是IBM为DB2提供的JDBC驱动程序,它们都是符合JDBC规范的类型4纯Java驱动,用于在Java应用程序中连接到DB2数据库。这两个文件的主要区别在于它们的兼容性: 1. **db2jcc.jar**:这是面向...

    jdbc db2驱动

    **使用JDBC连接DB2** 以下是一个简单的示例,展示了如何使用JDBC连接到DB2数据库: ```java import java.sql.*; public class DB2JDBCExample { public static void main(String[] args) { String url = "jdbc:...

    DB2的JDBC驱动包

    DB2的JDBC驱动包是连接IBM的DB2关系型数据库管理系统的重要组件,它使得Java应用程序能够通过Java Database Connectivity (JDBC) API与DB2进行交互。这些驱动程序提供了必要的接口和类,允许开发者在Java环境中执行...

    db2_db2driver_for_jdbc_v11.5.tar.gz

    使用这个驱动,开发者可以编写如下的Java代码来连接DB2数据库: ```java import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; public class DB2ConnectionExample { ...

Global site tag (gtag.js) - Google Analytics