【问题标题】:Confusion regarding JDBC Driver Manager component and DriverManager class关于 JDBC Driver Manager 组件和 DriverManager 类的混淆
【发布时间】:2014-12-24 01:18:40
【问题描述】:

根据this,JDBC 的“通用”组件是:

  • 驱动管理器
  • 驱动程序
  • 连接
  • 声明
  • 结果集
  • SQLException

然而,根据 Java Server Programming Java EE 6 Black Book,JDBC 的“主要”组件是:

  • JDBC API
  • 驱动管理器
  • JDBC 测试套件
  • JDBC-ODBC 桥

所以基本上我所理解的是 JDBC 的组件是两个列表的联合(黑皮书和教程点提到)。我说的对吗?

该书进一步描述了 JDBC API 的架构由以下几部分组成:

  • 驱动管理器
  • 驱动程序
  • 连接
  • 声明
  • 准备好的声明
  • 可调用语句
  • 结果集
  • 数据库元数据
  • 结果集元数据
  • SQL 数据
  • 斑点
  • Clob

现在,本书明确将“驱动管理器”和“JDBC API”定义为 JDBC 的两个不同组件。但是,它将“DriverManager”类列为“JDBC API”的一部分。

那么JDBC API的DriverManager类和JDBC的DriverManager组件究竟有什么异同呢?

【问题讨论】:

  • 我相信最后一点是同义词(DriverManager == Driver Manager);这是一个加载提供程序的特殊类。在 Java 8 中,JDBC-ODBC 桥已被移除,java.sql 下的各种类都是 JDBC 的一部分。最后,你真的想在这里解决一个问题吗?
  • 我对 JDBC 有一些困惑。这对我来说是一个合法的问题 :)

标签: java jdbc


【解决方案1】:

那么JDBC API的DriverManager类和JDBC的DriverManager组件究竟有什么异同呢?

没有区别,在 2 种方式中指的是同一件事。阅读与 JDBC 相关的 javadoc 和 Java 教程 (http://docs.oracle.com/javase/tutorial/) 部分,了解它的作用。

另外黑皮书进一步描述了JDBC API的架构由以下几部分组成:

  • 驱动管理器
  • 驱动程序
  • 连接
  • 声明
  • 准备好的声明
  • 可调用语句
  • 结果集
  • 数据库元数据
  • 结果集元数据
  • SQL 数据
  • 斑点
  • Clob

这是 JDBC 所包含的类的相当完整的枚举。 其中一些一直在使用(DriverManager、Driver、Connection、Statement、PreparedStatement、CallableStatement、Resultset),而另一些则需要更少。 再次查看 Javadoc 和教程以了解每个人都在做什么以及如何将它们粘合在一起。实际上,我建议从教程开始,javadoc 更枯燥,信息丰富,但解释较少。

【讨论】:

  • 好吧,如果它们是同一个东西,那为什么它们被列为不同的组件呢?
  • 在 JDBC API 和 Driver manager 中是 JDBC 的两个不同组件
  • @Smrita 因为 JDBC API 依赖于驱动程序管理器来提供Connection(s)(可能使用本机代码)。而且,如果没有 JDBC API,驱动程序管理器就毫无用处。
  • @ElliottFrisch 你在暗示 JDBC 中有一种机制可以在应用程序中加载驱动程序以获取连接,并且它的某些机制已通过 DriverManager 类实现?是这样吗?
  • @Smrita 我并不是在暗示这一点,我直言不讳。 JDBC 4.0 Enhancements in Java SE 6 声明(部分)感谢 Mustang 中包含的 Java SE Service Provider 机制,Java 开发人员不再需要使用 Class.forName() 之类的代码显式加载 JDBC 驱动程序来注册 JDBC 驱动程序。 DriverManager 类通过在调用 DriverManager.getConnection() 方法时自动定位合适的驱动程序来解决这个问题。
【解决方案2】:

它们是一回事。 DriverManager 类是 JDBC API 的一部分。它管理数据库驱动程序列表,使用通信子协议将来自 java 应用程序的连接请求与适当的数据库驱动程序匹配。

驱动管理器能够支持连接到异构数据库的多个并发数据库。

要了解此驱动程序管理器相对于您的 java 应用程序和数据库驱动程序的位置,这里是一张图片

JDBC API 提供应用程序到 DriverManager 的连接,而 JDBC Driver API 提供 JDBC 管理器到驱动程序的连接

来源:tutorialpoint.com

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-06-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-07
    • 2011-04-11
    • 2017-09-12
    相关资源
    最近更新 更多