如果在使用JDBC时不包含db驱动程序会发生什么?

时间:2009-01-29 23:27:35

标签: java database jdbc

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

然而,有一件事我很困惑 - 我到处读到我必须做的运行时 - 包括我想要使用的数据库驱动程序,即:

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

然而,省略这一点似乎也工作正常 - 所以我的问题是,jdbc是否自动找到驱动程序,给定服务器URL?如果是这样,为什么我在这个主题上阅读的所有教程中都包含这一行?

另外 - 如果有人对在线java学习资源(特别是企业开发)有任何好的建议,请分享!

2 个答案:

答案 0 :(得分:4)

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

特别是:

  

在JDBC 4.0中,我们不再需要   使用显式加载JDBC驱动程序   的Class.forName()。当方法   调用getConnection,   DriverManager将尝试定位   JDBC中的合适驱动程序   装载的驱动程序   初始化和那些加载   显式使用相同的类加载器   作为当前的申请。

另请参阅JDK 6中的JavaDoc for DriverManager

答案 1 :(得分:3)

JDK 6中没有这种变化吗?