JDBC 驱动程序

2025年3月17日 | 阅读 3 分钟
JDBC 驱动程序是一种使 Java 应用程序能够与数据库交互的软件组件。JDBC 驱动程序有 4 种类型:
  1. JDBC-ODBC 桥式驱动程序
  2. 原生 API 驱动程序(部分 Java 驱动程序)
  3. 网络协议驱动程序(纯 Java 驱动程序)
  4. 精简型驱动程序(纯 Java 驱动程序)

1) JDBC-ODBC 桥式驱动程序

JDBC-ODBC 桥式驱动程序使用 ODBC 驱动程序连接到数据库。JDBC-ODBC 桥式驱动程序将 JDBC 方法调用转换为 ODBC 函数调用。由于精简型驱动程序的存在,这种方式现在已不推荐使用。
bridge driver

在 Java 8 中,已移除 JDBC-ODBC 桥式驱动程序。

Oracle 不支持 Java 8 及以上版本的 JDBC-ODBC 桥式驱动程序。Oracle 建议您使用数据库供应商提供的 JDBC 驱动程序,而不是 JDBC-ODBC 桥式驱动程序。

优点

  • 易于使用。
  • 可以轻松连接到任何数据库。

缺点

  • 由于 JDBC 方法调用被转换为 ODBC 函数调用,因此性能有所下降。
  • ODBC 驱动程序需要安装在客户端计算机上。

2) 原生 API 驱动程序

原生 API 驱动程序使用数据库的客户端库。该驱动程序将 JDBC 方法调用转换为数据库 API 的原生调用。它不是完全用 Java 编写的。
Native-API driver

优点

  • 性能比 JDBC-ODBC 桥式驱动程序有所提升。

缺点

  • 原生驱动程序需要安装在每个客户端计算机上。
  • 需要在客户端计算机上安装供应商的客户端库。

3) 网络协议驱动程序

网络协议驱动程序使用中间件(应用程序服务器)将 JDBC 调用直接或间接转换为特定于供应商的数据库协议。它完全用 Java 编写。

Network Protocol driver

优点

  • 由于应用程序服务器可以执行审计、负载均衡、日志记录等多种任务,因此不需要客户端库。

缺点

  • 客户端计算机需要网络支持。
  • 需要在中间层进行特定于数据库的编码。
  • 维护网络协议驱动程序成本较高,因为它需要在中间层进行特定于数据库的编码。

4) 精简型驱动程序

精简型驱动程序将 JDBC 调用直接转换为特定于供应商的数据库协议。这就是为什么它被称为精简型驱动程序。它完全用 Java 语言编写。
Thin driver

优点

  • 性能优于所有其他驱动程序。
  • 客户端或服务器端不需要任何软件。

缺点

  • 驱动程序取决于数据库。


JDBC 驱动程序选择题

1. 哪种类型的 JDBC 驱动程序被称为“纯 Java”驱动程序,并直接将 JDBC 调用转换为特定于数据库的调用?

  1. 类型 1
  2. 类型 2
  3. Type 3
  4. Type 4

答案:D)

解释: 4 型驱动程序被称为“纯 Java”驱动程序,因为它们完全用 Java 实现,并将 JDBC 调用直接转换为特定于数据库的调用。


2. 哪种 JDBC 驱动程序类型使用原生代码,是平台相关的,因此可移植性较差?

  1. 类型 1
  2. 类型 2
  3. Type 3
  4. Type 4

答案:B)

解释: 2 型驱动程序使用特定于数据库的原生库,这使其依赖于平台且可移植性较差。


3. 以下哪种 JDBC 驱动程序类型被认为是最灵活的,但由于需要进行的翻译次数最多,因此也是最慢的?

  1. 类型 1
  2. 类型 2
  3. Type 3
  4. Type 4

答案:A)

解释: 1 型驱动程序是桥式驱动程序,它将 JDBC 调用转换为 ODBC 调用,然后 ODBC 调用再转换为特定于数据库的调用。由于有多层翻译,它们是最慢的驱动程序。


4. 使用三层架构中的 3 型 JDBC 驱动程序的主要缺点是什么?

  1. 可移植性差
  2. 由于多次翻译导致性能较低
  3. 依赖原生库
  4. 复杂的配置和维护

答案:D)

解释: 3 型驱动程序使用中间件服务器,该服务器将 JDBC 调用转换为特定于数据库的调用,从而使配置和维护更加复杂。


5. 哪种 JDBC 驱动程序类型最适合需要平台无关性的 Web 应用程序?

  1. 类型 1
  2. 类型 2
  3. Type 3
  4. Type 4

答案:D)

解释: 4 型驱动程序完全用 Java 编写,使其具有平台无关性,并适用于需要高可移植性的 Web 应用程序。