黑马程序员技术交流社区

标题: JDBC驱动程序的类型有哪4类? [打印本页]

作者: 陆建平    时间: 2012-5-24 22:49
标题: JDBC驱动程序的类型有哪4类?
JDBC驱动程序的类型有哪4类,分别是哪4类,连接的具体步骤?
作者: 韩国军    时间: 2012-5-24 22:57
JDBC驱动器根据其实现方式分为4种类型
1、JDBC-ODBC bridge plus ODBC driver:        JDBC-ODBC桥驱动程序,将JDBC调用转换为ODBC的调用。( This combination provides JDBC access via ODBC drivers. ODBC binary code--and in many cases, database client code-- must be loaded on each client machine that uses a JDBC-ODBC Bridge. Sun provides a JDBC-ODBC Bridge driver, which is appropriate for experimental use and for situations in which no other driver is available.)注意, 必须将ODBC二进制代码(许多情况下还包括数据库客户机代码)加载到使用该驱动程序的每个客户机上。这种类型的驱动程序最适合于企业网(这种网络上客户机的安装不是主要问题),或者是用Java编写的三层结构的应用程序服5、 务器代码。
2、Native-API partly-Java driver:  将JDBC调用转换为对数据库客户端API的调用。(A native-API partly Java technology-enabled driver: This type of driver converts JDBC calls into calls on the client API for Oracle, Sybase, Informix, DB2, or other DBMS. Note that, like the bridge driver, this style of driver requires that some binary code be loaded on each client machine.)这种类型的驱动程序把客户机API上的JDBC调用转换为Oracle、Sybase、Informix、DB2或其它DBMS的调用。注意,象桥驱动程序一样,这种类型的驱动程序要求将某些二进制代码加载到每台客户机上。
3、 Pure Java Driver for Database Middleware: 先将JDBC调用转换为DBMS-independent网络协议,然后由服务器端的中间件转换为具体数据库服务器可以接收的网络协议。(net-protocol fully Java technology-enabled driver #This style of driver translates JDBC calls into the middleware vendor's protocol, which is then translated to a DBMS protocol by a middleware server. The middleware provides connectivity to many different databases.)这种网络服务器中间件能够将它的纯Java客户机连接到多种不同的数据库上。所用的具体协议取决于提供者。通常,这是最为灵活的JDBC驱动程序。有可能所有这种解决方案的提供者都提供适合于Intranet用的产品。为了使这些产品也支持Internet访问,它们必须处理Web所提出的安全性、通过防火墙的访问等方面的额外要求。几家提供者正将JDBC驱动程序加到他们现有的数据库中间件产品中。
4、Direct-to-Database Pure Java Driver:    将JDBC调用直接转换为具体数据库服务器可以接收的网络协议。(native-protocol fully Java technology-enabled driver #This style of driver converts JDBC calls into the network protocol used directly by DBMSs, allowing a direct call from the client machine to the DBMS server and providing a practical solution for intranet access.)这将允许从客户机机器上直接调用DBMS服务器,是Intranet访问的一个很实用的解决方法。由于许多这样的协议都是专用的,因此数据库提供者自己将是主要来源,有几家提供者已在着手做这件事了。

作者: 贾旭    时间: 2012-5-24 22:59
你这样问问题让人感觉很囧的
作者: 谭威    时间: 2012-5-24 23:03
论坛上很多问题都很让人无语。不知道他们问的问题对他们到底有没有意义。是真心不懂还是什么
作者: 山水游客    时间: 2012-5-25 15:41
转自博客园     揭密JDBC驱动程序
对 Java 产生混淆的常见根源是:JDBC 有不同的版本,JDBC 驱动程序有不同的类型,它们可以被不同版本的 Java 使用。而且,新的 Java 规范总是在开发之中,因为通过 Java 社区过程(Java Community Process),相关的功能在不断地扩展中。
JDBC 版本
DB2 通用数据库 V8.1 支持 JDBC V2.1 规范和部分 JDBC 3.0 规范。使用通用 JDBC 驱动程序,全面支持 JDBC 3.0 需求的计划正在进行之中。
JDBC 驱动程序被认证为 J2EE 解决方案的一个组件。驱动程序认证的结果总是发布在 Sun 兼容性网站上。
JDBC 驱动程序体系结构
JDBC 驱动程序体系结构分为四种类型。
◆Type 1
◆Type 2
◆Type 3
◆Type 4
JDBC Type 1 驱动程序
JDBC Type 1 驱动程序基于 JDBC-ODBC 桥。因此 ODBC 驱动程序可以与此类 JDBC 驱动程序(由 Sun 提供)结合起来使用。IBM 不支持 Type 1 驱动程序,因此它不是推荐的环境。图 1 显示了 JDBC Type 1 驱动程序的示例:
图 1. JDBC Type 1 驱动程序

JDBC Type 2 驱动程序
JDBC Type 2 驱动程序依靠特定于操作系统的库(共享库)来与 RDBMS 通信。应用程序将装入这种 JDBC 驱动程序,而驱动程序将使用共享库来与 DB2 服务器通信。DB2 UDB for Linux, UNIX® 和 Windows® V8.1 提供了两种不同的 Type 2 驱动程序:
旧的/CLI JDBC 驱动程序在文件 db2java.zip 中提供。其实现包名称为 COM.ibm.db2.jdbc.app.DB2Driver。该驱动程序目前已被用于进行 J2EE 认证。其别名“app 驱动程序”源自于一种观念及其包名称,这种观念就是:此驱动程序将通过远程数据库的本地 DB2 UDB 客户机执行本地连接。
通用 JDBC 驱动程序在文件 db2jcc.jar 中提供。其实现包名称为 com.ibm.db2.jcc.DB2Driver。 此驱动程序是 DB2 UDB for Linux, UNIX 和 Windows V8.1 中的新功能。在最初的实现(V8.1)中,此驱动程序用于使用 Type 4 驱动程序体系结构与 DB2 服务器进行直接的 Java 连接。在 DB2 V8.1.2 中,您可以在 Type 2 体系结构中使用此驱动程序。在 Type 2 体系结构中使用此驱动程序的一个主要原因是为了本地应用程序性能和分布式事务支持。通用 JDBC Type 2 驱动程序分别使用 com.ibm.db2.jcc.DB2XADataSource 和 com.ibm.db2.jcc.DB2ConnectionPoolDataSource 来支持分布式事务和连接池。

可以使用 JDBC Type 2 驱动程序来支持 JDBC 应用程序。WebSphere Application Server 同时支持这两种 Type 2 驱动程序。注:在将来的版本中不会对旧的/CLI Type 2 驱动程序进行增强。
图 2 显示了使用 JDBC Type 2 驱动程序的应用程序的典型拓扑结构:
图 2. 使用JDBC Type 2 驱动程序的应用程序

JDBC Type 3 驱动程序
JDBC Type 3 驱动程序是一种纯 Java 实现,它必须与 DB2 JDBC Applet 服务器(DB2 JDBC Applet Server)通信才能访问 DB2 数据。此类驱动程序旨在使 Java applet 能访问 DB2 数据源。在图 3 所显示的方案中,应用程序与安装有 DB2 客户机另一台机器进行通信。
图 3. 使用Type 3 JDBC 驱动程序的典型应用程序方案

JDBC Type 3 驱动程序常被称作“网络(net)驱动程序”,它是根据其包名 COM.ibm.db2.jdbc.net 命名的。DB2 V8.1 支持网络驱动程序,可以将其用于 JDBC 应用程序。
Type 3 驱动程序要求 db2java.zip 驱动程序总是处于与 DB2 Applet 服务器相同的维护级别。如果驱动程序在 applet 内使用,这就不是一个问题,因为浏览器会在应用程序执行期间下载相应的 db2java.zip 文件。许多客户使用 Type 3 驱动程序而不是 Type 2 驱动程序,以避免必需的 DB2 客户机安装和必需的 DB2 CATALOG DATABASE 命令,后者用于创建使用旧的/CLI 驱动程序进行 Type 2 连接所必需的数据库目录信息。目前,WebSphere Application Server 和其它 J2EE 服务器不支持 IBM Type 3 驱动程序,因为该驱动程序不支持分布式事务(JTA)。将来的版本不会对 Type 3 驱动程序进行增强。
我们鼓励使用通用 JDBC Type 4 驱动程序来替代 Type 3 驱动程序。
JDBC Type 4 驱动程序
Type 4 驱动程序是仅用于 Java 的 JDBC 驱动程序,它直接连接到数据库服务器。DB2 UDB for Linux, UNIX 和 Windows V8.1 引入了称为“通用 JDBC 驱动程序(Universal JDBC driver)”的 Type 4 驱动程序。通用 JDBC 驱动程序在文件 db2jcc.jar 中提供。其实现包名为 com.ibm.db2.jcc.DB2Driver。
请注意,通用 Type 2 和通用 Type 4 驱动程序具有相同的实现类名称。有两种方法可以区别 DB2 在内部将实例化哪个驱动程序:
使用连接特性来确定连接是否使用共享库(Type 2),或者驱动程序是否会启动来自 Java 应用程序的直接连接(Type 4)。
使用不同的连接 URL 模式来指示您想要 Type 2 和 Type 4 行为中的哪一种。
Type 4 URL 模式的示例:字符串“jdbc:db2://server1:50000/sample”要求 JDBC 驱动程序将 Java 应用程序直接连接到 DB2 服务器上名为“sample”的数据库,该数据库位于配置在 DB2 服务器(主机名为 server1)上的 DB2 实例中,而 DB2 服务器则在端口 50000 上进行侦听。
Type 2 URL 模式的示例:字符串“jdbc:db2:sample”。有关 DB2 服务器(“server1”)和端口(“50000”)的信息可以在 DB2 客户机编目目录中找到。
通 用 JDBC 驱动程序是一种与驱动程序类型连通性或目标平台无关的抽象 JDBC 处理器。通用 JDBC 驱动器是一种与体系结构无关的 JDBC 驱动程序,用于进行分布式和本地 DB2 UDB 访问。因为通用 JDBC 驱动程序独立于任何特定 JDBC 驱动程序类型连通性或目标平台,所以它在一个 DB2 UDB 驱动程序实例中同时支持所有 Java 连通性(Type 4 驱动程序)和基于 JNI 的连通性(Type 2 驱动程序)。该驱动程序可以用于独立 Java 应用程序或多层应用程序。
重要:就 DB2 UDB V8.1.2 而言,通用 JDBC 驱动程序要求 CLASSPATH 中有许可证 JAR 文件和 db2jcc.jar 文件。以下是所需的许可证 JAR 文件:
◆对于 Cloudscape™ Network Server V5.1:db2jcc_license_c.jar
◆对于 DB2 UDB V8 for Linux, UNIX 和 Windows 服务器:db2jcc_license_su.jar
◆对于 DB2 UDB for iSeries® and z/OS 服务器(与 DB2 Connect 和 DB2 Enterprise Server Edition 一起提供):db2jcc_license_cisuz.jar
通用驱动程序可以通过使用预先安装在目标服务器上的必备存储过程,来查询数据库元数据目录及检索服务器错误消息文本:
◆对于 Linux、UNIX 和 Windows 上的 UDB V8,这些存储过程是预先安装的。

◆对于 DB2 UDB for OS/390® V6,必须安装 PTF UQ72081 和 UQ72082。
◆对于 DB2 UDB for OS/390 and z/OS V7,必须安装 PTF UQ72083。即将推出的 z/OS 上的 DB2 UDB V8 将会预先安装必需的存储过程。
◆DB2 UDB for iSeries V5R1 需要 PTF SI06308、SI06300、SI06301、SI06302、SI06305、SI06307 和 SI05872。
◆DB2 UDB for iSeries V5R2 需要 PTF SI06541、SI06796、SI07557、SI07564、SI07565、SI07566 和 SI07567。DB2 UDB for iSeries V5R3 将会预先安装必需的存储过程。
图 4 中显示了 Type 4 JDBC 驱动程序实现。注:从 Linux、UNIX 和 Windows 上的 Java 应用程序或 applet 连接到 DB2 for z/OS and OS/390 所用的通用 JDBC/SQLJ 驱动程序(Type 4 和 Type 2)需要适当的许可证文件(db2jcc_license_cisuz.jar)。该许可证文件是随 DB2 Connect 产品一起提供的。





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2