JDBC - 驱动程序类型



什么是 JDBC 驱动程序?

JDBC 驱动程序实现了 JDBC API 中定义的接口,用于与数据库服务器交互。

例如,使用 JDBC 驱动程序可以打开数据库连接,并通过发送 SQL 或数据库命令与数据库交互,然后接收 Java 的结果。

JDK 附带的java.sql包包含各种类及其定义的行为,其实际实现是在第三方驱动程序中完成的。第三方供应商在其数据库驱动程序中实现了java.sql.Driver接口。

JDBC 驱动程序类型

由于 Java 运行的各种操作系统和硬件平台,JDBC 驱动程序的实现各不相同。Sun 将实现类型分为四类:类型 1、2、3 和 4,如下所述:

类型 1 - JDBC-ODBC 桥驱动程序

在类型 1 驱动程序中,JDBC 桥用于访问安装在每台客户端机器上的 ODBC 驱动程序。使用 ODBC 需要在系统上配置一个数据源名称 (DSN),该名称代表目标数据库。

Java 最初发布时,这是一个有用的驱动程序,因为大多数数据库只支持 ODBC 访问,但现在这种类型的驱动程序仅推荐用于实验用途或在没有其他替代方案可用时使用。

DBMS Driver type 1

JDK 1.2 附带的 JDBC-ODBC 桥就是这种驱动程序的一个很好的例子。

类型 2 - JDBC-Native API

在类型 2 驱动程序中,JDBC API 调用被转换为特定于数据库的本机 C/C++ API 调用。这些驱动程序通常由数据库供应商提供,并以与 JDBC-ODBC 桥相同的方式使用。必须在每台客户端机器上安装供应商特定的驱动程序。

如果我们更改数据库,则必须更改本机 API,因为它特定于数据库,并且现在大多已过时,但是您可能会发现使用类型 2 驱动程序可以提高一些速度,因为它消除了 ODBC 的开销。

DBMS Driver type 2

Oracle 调用接口 (OCI) 驱动程序是类型 2 驱动程序的一个示例。

类型 3 - JDBC-Net 纯 Java

在类型 3 驱动程序中,使用三层方法来访问数据库。JDBC 客户端使用标准网络套接字与中间件应用程序服务器通信。然后,套接字信息由中间件应用程序服务器转换为 DBMS 所需的调用格式,并转发到数据库服务器。

这种类型的驱动程序非常灵活,因为它不需要在客户端安装任何代码,并且单个驱动程序实际上可以提供对多个数据库的访问。

DBMS Driver type 3

您可以将应用程序服务器视为 JDBC“代理”,这意味着它会为客户端应用程序进行调用。因此,您需要了解应用程序服务器的配置才能有效地使用此驱动程序类型。

您的应用程序服务器可能使用类型 1、2 或 4 驱动程序与数据库通信,了解细微之处将非常有帮助。

类型 4 - 100% 纯 Java

在类型 4 驱动程序中,基于纯 Java 的驱动程序通过套接字连接直接与供应商的数据库通信。这是数据库中最有效的驱动程序,通常由供应商自己提供。

这种类型的驱动程序非常灵活,您不需要在客户端或服务器上安装特殊的软件。此外,这些驱动程序可以动态下载。

DBMS Driver type 4

MySQL 的 Connector/J 驱动程序是类型 4 驱动程序。由于其网络协议的专有性,数据库供应商通常提供类型 4 驱动程序。

应该使用哪个驱动程序?

如果您正在访问一种类型的数据库,例如 Oracle、Sybase 或 IBM,则首选驱动程序类型为 4。

如果您的 Java 应用程序同时访问多种类型的数据库,则类型 3 是首选驱动程序。

在您的数据库尚无类型 3 或类型 4 驱动程序的情况下,类型 2 驱动程序非常有用。

类型 1 驱动程序不被认为是部署级驱动程序,通常仅用于开发和测试目的。

广告