Class.forName("com.mysql.jdbc.Driver")为何能加载JDBC驱动

Class.forName()作用:

  1. 装载一个类并且对其进行实例化的操作。
  2. 装载过程中使用到的类加载器是当前类。

com.mysql.jdbc.Driver 源代码:

// Driver 接口,所有数据库厂商必须实现的接口,表示这是一个驱动类

public class Driver implements java.sql.Driver {     
    public Driver() throws SQLException {     
    } 
    static {         
        try {           
            DriverManager.registerDriver(new Driver());  //注册数据库驱动         
        } catch (SQLException var1) {             
            throw new RuntimeException("Can't register driver!");         
        }     
    } 
} 
 

所以真正注册驱动的是DriverManager, Class.forName是告诉程序该使用哪一种数据库的驱动jar包。

注:从 JDBC3 开始,目前已经普遍使用的版本。可以不用注册驱动而直接使用。Class.forName 这句话可以省略。

发布了1 篇原创文章 · 获赞 0 · 访问量 71

猜你喜欢

转载自blog.csdn.net/qq_42606798/article/details/104102840