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

在JDBC中,我只看到使用的示例

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

并没有看到一个使用

 import com.mysql.jdbc.Driver; 

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

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

谢谢。

我只看到使用的例子

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

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

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