JDBC - 驱动程序类型

什么是 JDBC 驱动程序?

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

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

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


JDBC 驱动程序类型

由于 Java 运行的操作系统和硬件平台种类繁多,JDBC 驱动程序的实现会有所不同。 Sun 将实现类型分为4类,类型 1, 2, 3, 4,下面分别解释 −


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

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

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

DBMS 驱动程序类型 1

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


类型 2 − JDBC 原生 API

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

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

DBMS 驱动程序类型 2

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


类型 3 − JDBC-Net pure Java

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

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

DBMS 驱动程序类型 3

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

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


类型 4 − 100% 纯 Java

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

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

DBMS 驱动程序类型 4

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


应该使用哪个驱动程序?

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

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

类型 2 驱动程序在类型 3 或类型 4 驱动程序对您的数据库尚不可用的情况下很有用。

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