如何使用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 次浏览

启动您的职业生涯

完成课程获得认证

开始
广告