JDBC加载原理

JDBC加载原理,第1张

JDBC加载原理

大学的时候就学过了JDBC,当时一知半解,现在来搞懂以下详细的注册的原理。

JavaWeb的老师教了以下这句代码,说是注册驱动,但是原理是什么是没有细说的。

Class.forName("com.mysql.jdbc.Driver");

查看jdbc jar包的代码,如下

public class Driver extends com.mysql.cj.jdbc.Driver {
    public Driver() throws SQLException {
    }

    static {
        System.err.println("Loading class `com.mysql.jdbc.Driver'. This is deprecated. The new driver class is `com.mysql.cj.jdbc.Driver'. The driver is automatically registered via the SPI and manual loading of the driver class is generally unnecessary.");
    }
}

再找到

com.mysql.cj.jdbc.Driver这个包

代码如下所示:

public class Driver extends NonRegisteringDriver implements java.sql.Driver {
    public Driver() throws SQLException {
    }

    static {
        try {
            DriverManager.registerDriver(new Driver());
        } catch (SQLException var1) {
            throw new RuntimeException("Can't register driver!");
        }
    }
}

可以看到,使用了static代码块,在加载类(Class.forName)的时候,就对jdbc驱动进行了注册。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5718055.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-18

发表评论

登录后才能评论

评论列表(0条)

保存