【问题标题】:What happens if I don't include a db driver when using JDBC?如果我在使用 JDBC 时不包含 db 驱动程序会怎样?
【发布时间】:2009-01-29 23:27:34
【问题描述】:

我是 java 开发的新手,很高兴看到与我习惯的 php 环境相比,在支持多个平台时数据库实现要容易得多。

然而,有一件事情让我感到困惑 - 我到处阅读我必须对我想使用的数据库驱动程序进行运行时包含,即:

Class.forName(com.example.jdbc.Driver).newInstance();

但是,省略它似乎也可以正常工作 - 所以我的问题是,jdbc 是否会根据服务器 url 自动找到驱动程序?如果是这样,为什么我读过的所有关于该主题的教程都包含这一行?

另外——如果有人对在线java学习资源(尤其是企业开发)有什么好的建议,请分享!

【问题讨论】:

    标签: java database jdbc


    【解决方案1】:

    是的,这在 JDK 6 中得到了改进。请参阅 this O'Reilly article for JDBC 4.0 improvements

    特别是:

    在 JDBC 4.0 中,我们不再需要 使用显式加载 JDBC 驱动程序 类.forName()。当方法 getConnection 被调用, DriverManager 将尝试找到一个 来自 JDBC 的合适驱动程序 加载的驱动程序 初始化和那些加载 显式使用相同的类加载器 作为当前应用程序。

    另请参阅 JDK 6 中的 JavaDoc for DriverManager

    【讨论】:

      【解决方案2】:

      JDK 6 中没有这种变化吗?

      【讨论】:

      • 这很有意义 - 并且会支持我的理论,即我需要找到更好的地方来获取信息:)
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-03-23
      • 2014-09-11
      • 1970-01-01
      • 2011-04-15
      • 2020-03-04
      • 2011-05-05
      • 1970-01-01
      相关资源
      最近更新 更多