首页 > 数据库 >DB2 JDBC Driver

DB2 JDBC Driver

时间:2023-04-20 12:08:34浏览次数:42  
标签:JDBC 驱动程序 Driver UDB db2 DB2 Type



依照 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 应用程序或多层应用程序,是开发人员一个不错的选择。

标签:JDBC,驱动程序,Driver,UDB,db2,DB2,Type
From: https://blog.51cto.com/u_16080829/6209381

相关文章

  • 用Selenium自动化测试时,让ChromeDriver中不显示“正受到自动测试软件控制”
    背景:在用Selenium做自动化测试的时候,默认ChromeDriver是会提示“Chrom正受到自动测试软件控制”的。如下图这样。但我们有些场景下,不希望这个提示出现。本文探索了几种语言去掉这个提示条的方法,希望对小伙伴有帮助。  1.JavaChromeOptionsoptions=newChromeOptions(......
  • 关于DB2数据库基本信息查询语句
    1.1数据库的启停启动数据库:db2start关闭数据库:db2stop(在关闭前先执行db2forceapplicationall(关闭所有正在执行的连接))或者直接执行db2stopforce(不是优先选择))#--有时候db2forceapplicationall关闭不了一些active的连接时可以使用db2stopforce1.2数据库的创建及删......
  • jdbc使用(配置版)
    一、创建properties.properties文件连接好数据库点击查看代码driver=com.mysql.cj.jdbc.Driverurl=jdbc:mysql://localhost:3306/demo01username=rootpassword=rootzero=0二、创建DbHelper.java类连接properties.properties文件点击查看代码publicclassDbHelper{......
  • jdbc过程
    点击查看代码publicclassTestQuery{publicstaticvoidmain(String[]args){//1.找驱动try{Class.forName("com.mysql.cj.jdbc.Driver");}catch(ClassNotFoundExceptione){e.printStackTrace();......
  • JDBC 调用自定义函数(常说的存储过程)的步骤
     平常说的存储过程(Procedure),严格意义上是自定义函数,所以这里以【自定义函数】为名,简称【函数(function)】。 packagecom.joyupx.jdbc;importlombok.extern.slf4j.Slf4j;importorg.junit.jupiter.api.Test;importjava.io.IOException;importjava.io.InputStream;im......
  • db2高可用基础-主从hadr实践手册
    db2高可用基础-主从hadr实践手册(centos8)环境说明:服务器地址:primary192.168.247.128secondary192.168.247.168数据库版本:db2高级企业版V10.5+环境需求:主备两侧关闭系统防火墙,信任网络互通,scp、ssh可正常跳转查看状态systemctlstatusfirewalld.service关闭防火墙syste......
  • 记录selenium,python自动化测试中的chromedriver.exe地址和打开后自动关闭浏览器问题
    selenium的官方地址为:https://selenium-python.readthedocs.io/index.html镜像地址:https://npmmirror.com/#导入webdriverfromseleniumimportwebdriverfromselenium.webdriver.common.byimportBy#调用键盘按键操作时需要引入的Keys包fromselenium.webdriver.common.k......
  • Qt 连接 mysql 报错 QSqlDatabase: MYSQL driver not loaded
    参考: https://blog.csdn.net/o___GRoot/article/details/111320313 https://blog.csdn.net/sksukai/article/details/105344308 我的解决步骤:1.指定qmake qmake:couldnotexec‘/usr/lib/x86_64-linux-gnu/qt4/bin/qmake’:Nosuchfileordirectory需要修改如下......
  • Java JDBC批处理添加出现问题,求解决方案
    晚辈使用JDBC批处理时出现一个问题,使用addBatch()方法将记录加入批处理中,我想让这五千条记录每达到一千条记录再执行,以此提高效率,可最后执行在数据库查看时仅五条记录,我尝试将 preparedStatement.executeUpdate();提出if语句,虽然是有五千条记录,但效率相当的慢请求前辈们给出解决......
  • jdbc编程基础
    packagecom.local.util;importjava.sql.*;/***@date2023/4/1518:13*@description*/publicclassJdbcUtil{publicstaticfinalStringDRIVER_NAME="com.mysql.cj.jdbc.Driver";publicstaticfinalStringURL="jdbc:mysq......