JDBC - 驱动程序类型


什么是 JDBC 驱动程序?

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

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

JDK 附带的Java.sql包包含各种已定义Behave类,并且它们的实际实现是在第三方驱动程序中完成的。第三方供应商在其数据库驱动程序中实现java.sql.Driver接口。

JDBC 驱动程序类型

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

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

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

当 Java 首次出现时,这是一个有用的驱动程序,因为大多数数据库仅支持 ODBC 访问,但现在仅建议在实验使用或没有其他替代方案时使用这种类型的驱动程序。

DBMS 驱动程序类型 1

JDK 1.2 附带的 JDBC-ODBC Bridge 就是此类驱动程序的一个很好的例子。

类型 2 - JDBC 本机 API

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

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

DBMS 驱动程序类型 2

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

类型 3 - JDBC-Net 纯 Java

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

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

DBMS 驱动程序类型 3

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

您的应用程序服务器可能使用类型 1、类型 2 或类型 4 驱动程序与数据库进行通信,了解其中的细微差别将会有所帮助。

类型 4 - 100% 纯 Java

在 Type 4 驱动程序中,纯基于 Java 的驱动程序通过套接字连接直接与供应商的数据库进行通信。这是数据库可用的最高性能驱动程序,通常由供应商本身提供。

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

DBMS 驱动程序类型 4

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

应该使用哪个驱动程序?

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

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

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

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