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