1. 程式人生 > 資料庫 >Class.forName("com.mysql.jdbc.Driver")為何能載入JDBC驅動

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 這句話可以省略。