如何使用JDBC獲取已註冊到DriverManager的所有驅動程式列表?


java.sql.DriverManager 類管理應用程式中的 JDBC 驅動程式。此類維護所需驅動程式的列表,並在初始化時載入它們。

因此,您需要在使用驅動程式類之前註冊它。但是,您只需要對每個應用程式執行一次此操作。

將驅動程式類物件註冊到驅動程式管理器的一種方法是使用DriverManager類的registerDriver()方法。此方法需要您將 Driver 物件作為引數傳遞。

//Instantiating a driver class Driver driver = new com.mysql.jdbc.Driver();
//Registering the Driver DriverManager.registerDriver(driver);

所有驅動程式的列表

您可以使用DriverManager類的getDrivers()方法獲取已註冊到此DriverManager類中的所有驅動程式的列表。此方法返回一個包含驅動程式列表的 Enumeration。

//Retrieving the list of all the Drivers
Enumeration<Driver> e = DriverManager.getDrivers();
//Printing the list
while(e.hasMoreElements()) {
   System.out.println(e.nextElement().getClass());
}

以下 JDBC 程式使用registerDriver()方法註冊多個 JDBC 驅動程式,並使用getDrivers()方法顯示它們的列表。

示例

import java.sql.Driver;
import java.sql.DriverManager;
import java.util.Enumeration;
public class DriversList_DriverManager {
   public static void main(String args[])throws Exception {
      //Registering MySQL driver
      DriverManager.registerDriver(new com.mysql.jdbc.Driver());
      //Registering SQLite driver
      DriverManager.registerDriver(new org.sqlite.JDBC());
      //Registering Oracle driver
      DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
      //Registering Derby-client driver
      DriverManager.registerDriver(new org.apache.derby.jdbc.ClientDriver());
      //Registering Derby-autoloaded driver
      DriverManager.registerDriver(new org.apache.derby.jdbc.AutoloadedDriver());
      //Registering HSQLDb-JDBC driver
      DriverManager.registerDriver(new org.hsqldb.jdbc.JDBCDriver());
      System.out.println("List of all the Drivers registered with the DriverManager:");
      //Retrieving the list of all the Drivers
      Enumeration<Driver> e = DriverManager.getDrivers();
      //Printing the list
      while(e.hasMoreElements()) {
         System.out.println(e.nextElement().getClass());
      }
      System.out.println();
   }
}

輸出

List of all the Drivers registered with the DriverManager:
class org.sqlite.JDBC
class org.apache.derby.jdbc.ClientDriver
class org.apache.derby.jdbc.AutoloadedDriver
class org.hsqldb.jdbc.JDBCDriver
class com.mysql.jdbc.Driver
class oracle.jdbc.driver.OracleDriver

更新於:2019年7月30日

991 次瀏覽

啟動您的職業生涯

完成課程獲得認證

開始
廣告
© . All rights reserved.