Class.forName("com.jdbc.mysql.Driver")的作用

在練習JDBC時,對Class.forName("com.jdbc.mysql.Driver")的作用不是很瞭解,想要弄清楚它的作用,必須從源代碼入手

package com.mysql.cj.jdbc;

import java.sql.SQLException;

public class Driver extends NonRegisteringDriver implements java.sql.Driver {
    //
    // Register ourselves with the DriverManager
    //
    static {
        try {
            java.sql.DriverManager.registerDriver(new Driver());
        } catch (SQLException E) {
            throw new RuntimeException("Can't register driver!");
        }
    }

    /**
     * Construct a new driver and register it with DriverManager
     * 
     * @throws SQLException
     *             if a database error occurs.
     */
    public Driver() throws SQLException {
        // Required for Class.forName().newInstance()
    }
}

從源代碼中可以看到,使用Class.forName("com.jdbc.mysql.Driver")加載類的時候,Driver類靜態代碼塊中的會執行,作用是將驅動註冊到DriverManager裏

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章