Class.forName("com.mysql.cj.jdbc.Driver")
这行代码间接地确保了 JDBC 驱动程序被注册到 DriverManager
中的方式,主要是通过 JDBC 驱动程序的内部实现机制来实现的。以下是具体的解释:
1. JDBC 驱动程序的静态代码块
许多 JDBC 驱动程序(包括 MySQL 的 JDBC 驱动程序)在其主类中包含了静态代码块(static block)。在这个静态代码块中,它们会调用 DriverManager.registerDriver()
方法来注册自己。这意味着,当 JVM 加载这个类(即执行 Class.forName()
)时,静态代码块会被执行,从而触发注册过程。
例如,在 MySQL JDBC 驱动程序的源代码中,你可能会看到类似以下的静态代码块:
static {
try {
java.sql.DriverManager.registerDriver(new Driver());
}<