JDBC - 驱动程序类型
-
什么是 JDBC 驱动程序?
JDBC 驱动程序实现了 JDBC API 中定义的接口,用于与您的数据库服务器进行交互。例如,使用 JDBC 驱动程序使您能够打开数据库连接并通过发送 SQL 或数据库命令然后使用 Java 接收结果来与之交互。JDK 附带的Java.sql包包含各种定义了行为的类,它们的实际实现是在第三方驱动程序中完成的。第三方供应商在他们的数据库驱动程序中实现了java.sql.Driver接口。 -
JDBC 驱动程序类型
JDBC 驱动程序的实现因 Java 运行的操作系统和硬件平台的多样性而异。Sun 将实现类型分为四类,类型 1、2、3 和 4,解释如下 - -
类型 1 - JDBC-ODBC 桥驱动程序
在类型 1 驱动程序中,JDBC 桥用于访问安装在每台客户端计算机上的 ODBC 驱动程序。使用 ODBC,需要在您的系统上配置代表目标数据库的数据源名称 (DSN)。当 Java 首次出现时,这是一个很有用的驱动程序,因为大多数数据库只支持 ODBC 访问,但现在这种类型的驱动程序只推荐用于实验用途或没有其他替代方案可用时。JDK 1.2 附带的 JDBC-ODBC 桥就是这种驱动程序的一个很好的例子。 -
类型 2 - JDBC-Native API
在 Type 2 驱动程序中,JDBC API 调用被转换为本地 C/C++ API 调用,这是数据库独有的。这些驱动程序通常由数据库供应商提供,并以与 JDBC-ODBC 桥相同的方式使用。供应商特定的驱动程序必须安装在每台客户端计算机上。如果我们更改数据库,我们必须更改本机 API,因为它特定于数据库并且它们现在大多已过时,但是您可能会意识到使用类型 2 驱动程序提高一些速度,因为它消除了 ODBC 的开销。Oracle 调用接口 (OCI) 驱动程序是类型 2 驱动程序的一个示例。 -
类型 3 - JDBC-Net 纯 Java
在类型 3 驱动程序中,使用三层方法来访问数据库。JDBC 客户端使用标准网络套接字与中间件应用程序服务器进行通信。然后由中间件应用服务器将套接字信息转换为DBMS 所需的调用格式,并转发到数据库服务器。这种驱动程序非常灵活,因为它不需要在客户端安装代码,并且一个驱动程序实际上可以提供对多个数据库的访问。您可以将应用程序服务器视为 JDBC“代理”,这意味着它调用客户端应用程序。因此,您需要了解应用程序服务器的配置才能有效地使用这种驱动程序类型。您的应用程序服务器可能使用类型 1、2 或 4 驱动程序与数据库进行通信,了解细微差别将被证明是有帮助的。 -
类型 4 - 100% 纯 Java
在 Type 4 驱动程序中,纯基于 Java 的驱动程序通过套接字连接直接与供应商的数据库通信。这是数据库可用的最高性能驱动程序,通常由供应商自己提供。这种驱动非常灵活,不需要在客户端或服务器上安装特殊的软件。此外,这些驱动程序可以动态下载。MySQL 的 Connector/J 驱动程序是 Type 4 驱动程序。由于其网络协议的专有性质,数据库供应商通常提供类型 4 驱动程序。 -
应该使用哪个驱动程序?
如果您正在访问一种类型的数据库,例如 Oracle、Sybase 或 IBM,则首选驱动程序类型是 4。如果您的 Java 应用程序同时访问多种类型的数据库,则类型 3 是首选驱动程序。类型 2 驱动程序在类型 3 或类型 4 驱动程序尚不可用于您的数据库的情况下很有用。类型 1 驱动程序不被视为部署级驱动程序,通常仅用于开发和测试目的。