使用JDBC时必须注册驱动程序吗?

最初,直到Java6,registerDriver()在与数据库建立连接之前,都需要使用Class.forname()或方法注册驱动程序。

但是,由于使用Java 1.6,JDBC 4.0 API,因此无需显式注册驱动程序,只需为JDBC 4.X驱动程序设置Class路径,Java便会自动检测并加载Driver类。

示例

在下面的JDBC程序中,我们尝试与MySQL数据库连接,首先在您项目的pom.xml中包含MySQL驱动程序的依赖项。

<dependency>
   <groupId>mysql</groupId>
   <artifactId>mysql-connector-java</artifactId>
   <version>8.0.16</version>
</dependency>

然后,在不注册MySQL驱动程序类com.mysql.jdbc.Driver的情况下,我们尝试调用getConnection对象。

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class RunningScripts {
   public static void main(String args[]) throws SQLException {
      //获得连接
      String mysqlUrl = "jdbc:mysql://localhost/talakai_noppi";
      Connection con = DriverManager.getConnection(mysqlUrl, "root", "password");
      System.out.println("Connection established: "+ con);
   }
}

输出结果

不久,我们执行了这个JVM,它会自动检测到MySQL驱动程序并自动加载它,并且该程序成功执行并生成以下输出-

Connection established: com.mysql.jdbc.JDBC4Connection@424c0bc4