Java编程中JDBC 驱动程序类型

位置:首页>文章>详情   分类: 教程分享 > Java教程   阅读(659)   2023-03-28 11:29:14
Java 数据库连接 (JDBC)是标准应用程序编程接口 (API) 的 JavaSoft 规范,它允许 Java 程序访问数据库管理系统。JDBC API 由一组用 Java 编程语言编写的接口和类组成。使用这些标准接口和类,程序员可以编写连接到数据库的应用程序,发送以结构化查询语言 (SQL)编写的查询,并处理结果。JDBC 面向关系数据库。
由于 JDBC 是标准规范,因此使用 JDBC API 的 Java 程序可以连接到任何具有 JDBC 驱动程序的数据库管理系统 (DBMS)。

JDBC驱动程序

JDBC API 定义了程序员用来连接数据库和发送查询的 Java 接口和类。
JDBC 驱动程序为特定的 DBMS 供应商实现这些接口和类。
Java 程序(使用 JDBC API)在实际连接到数据库之前为特定的 DBMS 加载指定的驱动程序。JDBC 的 DriverManager 类然后将所有 JDBC API 调用发送到加载的驱动程序。

JDBC 驱动程序的类型

4 种不同类型的 JDBC 驱动程序
  1. 类型 1:JDBC-ODBC 桥驱动程序
  2. 类型 2:本机 API 驱动程序
  3. 类型 3:所有 Java + Middleware 翻译驱动程序
  4. 类型 4:纯 Java 驱动程序
让我们一一看看它们。

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

JDBC 驱动程序类型 1
类型 1 JDBC 驱动程序由 Java 部分组成,该部分将 JDBC 接口调用转换为 ODBC 调用。ODBC 桥然后调用给定数据库的 ODBC 驱动程序,即驱动程序将 JDBC 方法调用转换为 ODBC 函数调用。该驱动程序依赖于平台,因为它使用 ODBC,而 ODBC 又依赖于运行 JVM 的底层操作系统的本机库。此外,使用此驱动程序会导致其他安装依赖项;例如,安装了该驱动程序的计算机上必须安装ODBC,并且数据库必须支持ODBC 驱动程序。如果有纯 Java 驱动程序的替代品可用,则不鼓励使用此驱动程序。
Sun 提供了 JDBC-ODBC 桥驱动程序:sun.jdbc.odbc.JdbcOdbcDriver。此驱动程序是本机代码而不是 Java,并且是封闭源代码。





类型 2:本机 API 驱动程序

JDBC-driver-type-2
类型 2 JDBC 驱动程序类似于类型 1 驱动程序,只是ODBC 部分被替换为本机代码部分。本机代码部分针对特定的数据库产品,即使用数据库产品的客户端库。驱动程序将 JDBC 方法调用转换为数据库本机 API 的本机调用。
这种架构消除了对 ODBC 驱动程序的需求,而是直接调用数据库供应商提供的本地客户端库。这很快被 DB 供应商采用,因为它实现起来既快速又便宜,因为他们可以重用现有的基于 C/C++ 的本机库。










类型 3:所有 Java + Middleware 翻译驱动程序

JDBC-driver-type-3
类型 3 JDBC 驱动程序是将 JDBC 接口调用发送到中间服务器的全 Java 驱动程序。然后中间服务器代表 JDBC 驱动程序连接到数据库。中间层(应用程序服务器)将 JDBC 调用直接或间接转换为供应商特定的数据库协议。
类型 3 驱动程序寻求成为 100% Java 解决方案,但从未真正获得太多关注。类型 3 驱动程序有一个 Java 客户端组件和一个 Java 服务器组件,后者实际上与数据库通信。虽然这在技术上是一个完整的 Java 解决方案,但数据库供应商不喜欢这种方法,因为它成本高昂——他们必须重写他们的本地客户端库,这些库都是 C/C++。此外,这并没有提高架构效率,因为我们实际上仍然是一个 3 层架构,所以很容易理解为什么这从来不是一个流行的选择。








类型 4:纯 Java 驱动程序

JDBC-driver-type-4
JDBC 类型 4 驱动程序,也称为 Direct to Database Pure Java Driver,是一种数据库驱动程序实现,可将 JDBC 调用直接转换为特定于供应商的数据库协议。它是为特定的数据库产品实现的。今天,大多数 JDBC 驱动程序都是类型 4 驱动程序。
完全用 Java 编写,因此类型 4 驱动程序与平台无关。它们安装在客户端的 Java 虚拟机中。这提供了比类型 1 和类型 2 驱动程序更好的性能,因为它没有将调用转换为 ODBC 或数据库 API 调用的开销。与类型 3 驱动程序不同,它不需要相关软件即可工作。
该架构将整个 JDBC API 实现以及用于直接与数据库通信的所有逻辑封装在
单个驱动程序中。通过在 100% 的 java 包中包含一个单层和一个小驱动程序,这允许轻松部署并简化开发过程。
例如,这种类型包括广泛使用的 Oracle 瘦驱动程序。
地址:https://www.leftso.com/article/866.html

相关阅读

Java 数据库连接 (JDBC)是标准应用程序编程接口 (API) 的 JavaSoft 规范,它允许 Java 程序访问数据库管理系统
JDBC 批处理查询/新增/修改的使用。虽然在一般的编码中不会直接使用jdbc的批处理,但是作为了解记录下来。
如果您在项目中仍然使用JDBC进行数据库访问,这很奇怪,因为有很多强大的替代品,如hibernate和iBatis
Java MongoDB驱动程序,下载/升级,Java驱动程序兼容性,第三方框架和库
java编程中float或double类型保留2位/n位小数使用BigDecimal进行处理
fastJSON字符串类型数据中的日期转换为Java bean的日期对象
You must configure either the server or JDBC driver (via the serverTimezone configuration propert...
Java语言中,String类型能被继承吗?为什么?
java基础编程中float/double类型的正确比较方法