为什么JDBC动态加载而不是导入?

时间:2018-06-10 15:04:41

标签: java jdbc import dynamic-loading

在JDBC中,我只看到使用

的示例
Class.forName("com.mysql.jdbc.Driver", true, cl);

并且没有看到使用

的人
import com.mysql.jdbc.Driver;

是不是因为我们想在执行时动态提供驱动程序包,所以只能在执行时知道?

如果我们在执行前知道了一个固定的驱动程序包,是否可以采用第二种方式?你会如何比较这两种方式?

感谢。

1 个答案:

答案 0 :(得分:8)

  

我只看到使用

的例子

然后你正在阅读关于JDBC的旧东西。这在很长一段时间内都没用了。加载驱动程序类以确保加载必要的驱动程序并且能够在尝试执行此操作之前处理与提供的数据库URL的连接时, 是必需的。

JDBC抽象是访问数据库所需的全部内容,您无需关心是否正在处理MySQL驱动程序或Oracle驱动程序,或其他任何问题。在运行时动态加载驱动程序允许从编译类路径中删除驱动程序jar文件,并确保只依赖于标准JDBC类和接口。

请注意,除了允许您在代码中使用简单类名外,导入类不会执行任何操作。它不等同于加载和初始化类,这是第一个代码片段的作用。