我在代码中看到了这种类型的代码,它初始化了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接口类。
答案 0 :(得分:3)
简短回答:使用JDBC驱动程序4.0之前(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驱动程序都是 自动加载。 (但是,您必须手动加载任何驱动程序 在JDBC 4.0之前使用方法Class.forName。)
来源:JDBC Basics