3

我在初始化 MySQL JDBC 连接的代码中看到了很多这种类型的代码。

Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection("jdbc:mysql://10.0.0.2:3306", "username", "password");

现在我的问题是为什么/何时需要第一行?我已经能够通过以下方式毫无问题地连接到 MySQL 数据库:

conn = DriverManager.getConnection("jdbc:mysql://10.0.0.2:3306", "username", "password");

我将 Java 7 与 Connector/J 5.0.8 驱动程序一起使用。

我的代码中没有任何导入或类加载语句可以直接加载 MySQL 驱动程序,只有通用 Java SQL 接口类。

4

1 回答 1

3

简短回答:使用 4.0 之前的 JDBC 驱动程序(JDBC 4.0 引入了 JDBC 驱动程序类的自动加载)

在以前的 JDBC 版本中,要获得连接,首先必须通过调用方法 Class.forName 来初始化 JDBC 驱动程序。此方法需要 java.sql.Driver 类型的对象。每个 JDBC 驱动程序都包含一个或多个实现接口 java.sql.Driver 的类。Java DB 的驱动程序是 org.apache.derby.jdbc.EmbeddedDriver 和 org.apache.derby.jdbc.ClientDriver,而 MySQL Connector/J 的驱动程序是 com.mysql.jdbc.Driver。请参阅 DBMS 驱动程序的文档以获取实现接口 java.sql.Driver 的类的名称。

在您的类路径中找到的任何 JDBC 4.0 驱动程序都会自动加载。(但是,您必须使用 Class.forName 方法手动加载 JDBC 4.0 之前的所有驱动程序。)

资料来源:JDBC 基础

于 2012-11-14T01:43:45.833 回答