依照 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 应用程序或多层应用程序,是开发人员一个不错的选择。
转自:http://www.oschina.net/p/db2+jdbc+driver 依照 JDBC 规范,有四种类型的 JDBC 驱动程序体系结构: Type 1:这类驱动程序将 JDBC API 作为到另一个数据访问 API 的映射来实现,如开放式数据库连通性(Open Database Connectivity,ODBC)。这类驱动程序通常依赖本机库,这限制了其可移植性。JDBC-ODBC
依照 JDBC 规范,有四种类型的 JDBC 驱动程序体系结构: Type 1:这类驱动程序将 JDBC API 作为到另一个数据访问 API 的映射来实现,如开放式数据库连通性(Open Database Connectivity,ODBC)。这类驱动程序通常依赖本机库,这限制了其可移植性。JDBC-ODBC 桥驱动程序就是 Type 1 驱动程序的最常见的例子。 Type 2:这类驱动程序部分
报错信息: Unable to process Jar entry [COM/ibm/db2os390/sqlj/custom/DB2SQLJCustomizer.class] from Jar for annotations org.apache.tomcat.util.bcel.classfile.ClassFormatException: It is not a Java .class fi
com.linkage.bace.core.reflect.exception.ReflectionError: invoke method 'getTableProcRelate' with arguments [] at com.linkage.bace.core.reflect.method.Invoker.invoke(Invoker.java:59) at com.linkage.
jdbcdevelopment on DB2 Database 1. db2数据库驱动的安装 一种措施是安装db2客户端 还有一种是把db2的jdbc驱动放到jdk,jre可能tomcat的common/lib目录下,这么就在开发和运行环境下安排了db2的jdbc驱动。 db2的数据库驱动有几种,一种是COM.ibm.db2.jdbc.app.DB2Driver;另一种是COM.ibm.db2.j
近期碰到了一个问题,就是在使用db2java.zip驱动连接db2数据库时,报错如下所示: COM.ibm.db2.jdbc.DB2Exception: [IBM][JDBC Driver] CLI0615E 从套接字接收时出错,服务器不响应。SQLSTATE=08S01 at COM.ibm.db2.jdbc.net.SQLExceptionGenerator.throwRec
通过JDBC方式连接DB2数据库时,url可写成如下格式: XXXdb.connection.url=jdbc:db2://192.168.1.1:50000/xxxDB:deferPrepares=false;currentSchema=XXX 其中deferPrepares=false有何作用? IBM官方对此属性的解释如下:deferPreparesSpecifies whether to
简介-为什么要进行JDBC跟踪? JDBC跟踪是一种为Java应用程序开发人员提供有价值的信息,以帮助他们进行数据库应用程序开发工作的方法。 以下是一些需要了解如何执行JDBC跟踪的实例示例: 搜索程序逻辑或初始化错误-数据库连接可能由于URL错误而失败,一次又一次地调用预期要执行的查询,由于事务定义不正确而可能导致数据库不一致,并且以此类推。 在所有这些情况下,很有可能可以使用跟踪数据来发现问题
我试图通过JDBC驱动程序连接到DB2数据库 . 我在我的pom.xml中添加了以下条目 com.ibm.db2 db2jcc_license_cu 9.7 com.ibm.db2 db2jcc 8.1 com.ibm.db2.jcc db2jcc4 10.1 但是maven构建失败了以下问题 [INFO] Downloading from : https://repo.maven.apache.
1:如果数据库为db2,则你所要查找的表前面要加上这个建表的用户名, 如,testTable这张表,我是通过系统登陆的帐号所建,为lixc.testTable; 我所使用查询的用户为admin,如果你只是写select * from testTable ,则 db2只是默认的查找admin.testTable,这张表不存在,所以应该写为: select * from lixc.testTable
各版本DB2 JDBC驱动程序下载地址: http://www-01.ibm.com/support/docview.wss?uid=swg21363866
我需要在Java中使用JDBC做一些简单的实验,我认为运行derby数据库应该是实现这一点的简单途径。 我已经安装了derby,并使用“ij”工具创建了一个表并将一些数据放入其中。我也可以用ij读回数据。 然而,当我试图使用实际的Java代码连接到此时,事情变得很糟糕。这是我尝试了几件事情的情况之一,每件事都以不同的方式失败,所以我希望你们都能原谅这有点模糊。但这些是我迄今为止尝试/失败的要点。
问题内容: 有人告诉我,加载JDBC驱动程序的首选方法是: 我知道,这对于从XML配置文件或用户输入中读取多个驱动程序之间的动态决策更好。我很好奇的是,调用此语句如何将指定的驱动程序加载到我们什至没有将生成的“ Class”对象存储在任何地方的环境中。JavaDocs条目说: 返回与具有给定字符串名称的类或接口关联的Class对象 在那种情况下,Java开发人员仅凭此语句如何设法促进驱动程序对象的
主要内容:JDBC驱动程序是什么?,JDBC驱动程序类型,应该使用哪个驱动程序?JDBC驱动程序是什么? JDBC驱动程序在JDBC API中实现定义的接口,用于与数据库服务器进行交互。 例如,使用JDBC驱动程序,可以通过发送SQL或数据库命令,然后使用Java接收结果来打开数据库连接并与数据库进行交互。 JDK附带的包包含各种类,其类的行为被定义,实现在第三方驱动程序中完成。 第三方供应商在其数据库驱动程序中实现接口。 JDBC驱动程序类型 JDBC驱动程序实现因Java
问题内容: 我很难确定应该如何在我的debian 6.0服务器上为PostgreSQL安装JDBC驱动程序。我已将驱动程序.jar移至以下目录: 然后,教程讨论如何使用此代码: 但是,由于我是PostgreSQL的新手,所以我不知道应该把这行放在哪里,或者这是否正确。 我的问题是,除了将jar文件移动到此位置之外,为了在我的postgreSQL安装上安装JDBC驱动程序,我实际上需要做什么? 编辑
问题内容: 输出 >无法连接到数据库服务器java.lang.ClassNotFoundException 问题答案: 看来您应该将MySQL驱动程序jar放入 类路径中 。
问题内容: 我目前正在为大学的一个班级做项目。我正在学习有关连接和操作数据库的信息,我们正在使用Microsoft .accdb文件。 这是我到目前为止所拥有的。 当寻找“ sun.jdbc.odbc.JdbcOdbcDriver”时,我得到以下输出。 似乎很容易解决。看来我想念司机或类似的东西。但是,我很难找到解决方法。JDK随附驱动程序吗?我需要单独下载吗?是否取决于我的操作系统?(Mac O
因此,我一直在使用sbt with assembly将所有依赖项打包到一个jar中,用于spark工作。我做了几个工作,使用设置连接池信息,将其广播出去,然后在RDD上使用获取连接,并将数据插入数据库。在我的sbt构建脚本中,我包括 这确保JDBC连接器与作业打包在一起。一切都很好。 因此,最近我开始使用SparkSQL,并意识到使用中的新特性,简单地获取一个dataframe并将其保存到jdbc
我正在尝试将Java程序连接到远程Oracle数据库。在网上做了一些研究之后,我决定最简单的方法是使用Oracle JDBC驱动程序。我下载并运行了jar文件,得到了消息“****JCE UNLIMITED STRENGTH已安装*****”问题是,当我尝试将驱动程序添加到我的类路径(javac-classpath ojdbc8.jar Connect.java)时,我不断收到一条错误消息,说“包