JDBC DriverManager

       Class.forName("com.mysql.jdbc.Driver");
            ....
       Connection connection = null;
        connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/test","root", "password");

DriverManager内部会遍历一个Driver的注册表。

注册过程发生在com.mysql.jdbc.Driver的static块中:

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()
    }
}

这个类基本就干自注册这件事情。真正的事情在NonRegisteringDriver实现。

           

你可能感兴趣的:(JDBC DriverManager)