Class.forName("com.mysql.jdbc.Driver");
....
Connection connection = null;
connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/test","root", "password");java
DriverManager内部会遍历一个Driver的注册表。mysql
注册过程发生在com.mysql.jdbc.Driver的static块中:sql
public class Driver extends NonRegisteringDriver implements java.sql.Driver {
static {
try {
java.sql.DriverManager.registerDriver(new Driver());
} catch (SQLException E) {
throw new RuntimeException("Can't register driver!");
}
}
public Driver() throws SQLException {
// Required for Class.forName().newInstance()
}
}ui
这个类基本就干自注册这件事情。真正的事情在NonRegisteringDriver实现。
get