Class.forName()完全不与JDBC直接相关。它只是加载一个类。
大多数JDBC驱动程序类通过调用在自己的静态初始化器中注册自己registerDriver()。
registerDriver()是真正不需要调用的真正调用(除非你编写自己的JDBC驱动程序)。
请注意,在JDBC 4 中,如果你的JDBC驱动程序是最新的,则不需要它们中的任何一个,因为可以使用服务定位机制找到驱动程序(即,只需忽略该调用并照常打开连接)。有关详细信息,请参见文档DriverManager:
在DriverManager的方法
getConnection和
getDrivers已得到增强,支持Java标准版服务提供商的机制。JDBC 4.0驱动程序必须包含该文件
meta-INF/services/java.sql.Driver。该文件包含的JDBC驱动程序实现的名称
java.sql.Driver。例如,要加载my.sql.Driver类,该
meta-INF/services/java.sql.Driver文件将包含以下条目:
my.sql.Driver
应用程序不再需要使用显式加载JDBC驱动程序
Class.forName()。当前使用JDBC驱动程序加载的现有程序
Class.forName()将继续运行而无需修改。



