java - JDBC架构子系统

标签 java jdbc driver

我正在尝试了解 JDBC 技术。我看网上的资料,大部分都是这样的:

1) JDBC API

2) 驱动管理器

3) 司机

我看到了下面的架构图:

JDBC architecture

根据 JDBC 规范,jdbc 相关的内容位于 java.sql 和 javax.sql 包中。我有以下问题:

1) 在图中,当我们看到 JDBC API 时,它们到底是什么?这些是java.sql中的类/接口(interface)吗? javax.sql?这些是直接在应用程序中使用的吗?谁实现了 JDBC API?

2) JDK是否提供java.sql中定义的所有类/接口(interface)的实现; javax.sql?

3) 谁实现 JDBC 驱动程序管理器?是JDK本身提供的还是数据库厂商提供的?它是作为一个进程运行还是只是一个类/接口(interface)?

4) 驱动程序到底是什么?据我了解,驱动程序与数据库服务器通信并由数据库供应商提供?现在,这些驱动程序是否实现了 java.sql ? javax.sql?或者驱动程序是否有与 java.sql 无关的不同类; javax.sql? JDBC API(上图)和驱动程序之间有什么关系吗?

最佳答案

JDBC API 由两个包组成:

  1. java.sql:包含主要类和接口(interface);例如,Driver、Connection、Statement、ResultSet、PreparedStatement 和 CallableStatement 等类都包含在此包中。
  2. javax.sql:包含更具体的类,如 RowSet、DataSource 或 PooledConnection。

这些包包含从数据库访问数据所需的所有类和接口(interface)。然而,它们还不够,因为缺少实现允许连接到不同 DBMA 的 JDBC 的类和接口(interface),因此我们需要一个驱动程序。

根据访问类型的不同,驱动程序有 4 种类型:

-类型 1:JDBC-ODBC -类型2:JDBC-libDBMA -类型 3:JDBC - 中间件驱动程序(类型 1、2、4) - DBMA -类型 4:JDBC - DBMA(直接)

要与 java 应用程序和数据库建立连接,您必须: 首先加载包。 第二步加载驱动程序。 因此,要回答您的问题,JDK 本身不提供 JDBC 驱动程序(需要从其他源下载),并且 JDK 不提供 java.sql 中定义的所有类/接口(interface)的实现; javax.sq 因为你必须导入它们。

关于java - JDBC架构子系统,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34632393/

相关文章:

java - 如何使用 Java Scanner 读取命题逻辑符号作为输入?

java - 使用 JDBC 连接具有防火墙的 SQL 数据库

driver - ubuntu 上的移远 BG96 驱动程序

c++ - 微过滤器:通过通知阻止应用程序

delphi - 如何以及在何处将数据库驱动程序安装到 IDE 中?

java - 编译包含 "Aux"类的 Java 文件时出错

java - Android 深层链接未重定向到 Play 商店

java - gradle:通过(文件)循环调用java插件

java - 关闭自动提交如何帮助在 JDBC 中启动事务?

java - 如何使 Java 和 Postgres 枚举协同工作以进行更新?