如何使用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);
所有驱动程序列表
您可以使用该类的getDrivers()方法获取在该DriverManager类中注册的所有驱动程序的列表。此方法返回一个包含驱动程序列表的枚举。
//RetrievingthelistofalltheDrivers Enumeration<Driver> e = DriverManager.getDrivers(); //Printingthelist 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 { //RegisteringMySQLdriver DriverManager.registerDriver(new com.mysql.jdbc.Driver()); //RegisteringSQLitedriver DriverManager.registerDriver(new org.sqlite.JDBC()); //RegisteringOracledriver DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver()); //RegisteringDerby-clientdriver DriverManager.registerDriver(new org.apache.derby.jdbc.ClientDriver()); //RegisteringDerby-autoloadeddriver DriverManager.registerDriver(new org.apache.derby.jdbc.AutoloadedDriver()); //RegisteringHSQLDb-JDBCdriver DriverManager.registerDriver(new org.hsqldb.jdbc.JDBCDriver()); System.out.println("ListofalltheDriversregisteredwiththeDriverManager:"); //RetrievingthelistofalltheDrivers Enumeration<Driver> e = DriverManager.getDrivers(); //Printingthelist while(e.hasMoreElements()) { System.out.println(e.nextElement().getClass()); } System.out.println(); } }
输出结果
ListofalltheDriversregisteredwiththeDriverManager: 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