我正在尝试了解 JDBC 技术。我看网上的资料,大部分都是这样的:
1) JDBC API
2) 驱动管理器
3) 司机
我看到了下面的架构图:
根据 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 由两个包组成:
- java.sql:包含主要类和接口(interface);例如,Driver、Connection、Statement、ResultSet、PreparedStatement 和 CallableStatement 等类都包含在此包中。
- 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/