如何使用JDBC从驱动程序管理器的驱动程序列表中注销驱动程序?

该java.sql.DriverManager中的类管理应用程序中的JDBC驱动程序。此类维护所需的驱动程序列表,并在初始化时加载它们。

因此,您需要在使用前注册驱动程序类。但是,每个应用程序只需要执行一次。

您可以通过两种方式注册新的Driver类-

  • 使用DriverManager类的registerDriver()方法。对于此方法,您需要将Driver对象作为参数传递。

//Instantiating a Driver class Driver driver = new com.mysql.jdbc.Driver();

//Registering the Driver DriverManager.registerDriver(driver);

  • 使用名为Class的类的forName()方法。对于此方法,您需要将驱动程序的名称作为String参数传递。

Class.forName("com.mysql.jdbc.Driver");

注销驱动程序

您可以使用其deregisterDriver()方法从DriverManager的列表中删除特定的Driver 。

如果通过传递所需的Driver类的对象来调用此方法,则DriverManager只是从列表中删除指定的驱动程序。

DriverManager.deregisterDriver(mySQLDriver);

接下来的JDBC程序与MySQL数据库建立连接,显示所有在DriverManager类中注册的驱动程序,注销MySQL驱动程序,然后再次显示该列表。

示例

import java.sql.Connection;

import java.sql.Driver;

import java.sql.DriverManager;

import java.util.Enumeration;

public class DeRegistering_Driver {

   public static void main(String args[])throws Exception {

      //Instantiating a Driver class

      Driver mySQLDriver = new com.mysql.jdbc.Driver();

      //Registering the Driver

      DriverManager.registerDriver(mySQLDriver);

      //Getting the connection

      String mysqlUrl = "jdbc:mysql://localhost/sampledatabase";

      Connection con = DriverManager.getConnection(mysqlUrl, "root", "password");

      System.out.println("Connection established....... ");

      System.out.println();

      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();

      //De-registering the MySQL Driver

      DriverManager.deregisterDriver(mySQLDriver);

      System.out.println("List of all the Drivers after de-registration:");

      e = DriverManager.getDrivers();

      //Printing the list

      while(e.hasMoreElements()) {

         System.out.println(e.nextElement().getClass());

      }

      System.out.println();

   }

}

由于我们已从DriverManager的列表中删除了该驱动程序,因此您将无法在该列表中第二次找到MySQL驱动程序的名称。

输出结果

Connection established.......

List of all the Drivers registered with the DriverManager:

class oracle.jdbc.OracleDriver

class org.sqlite.JDBC

class org.apache.derby.jdbc.AutoloadedDriver

class org.apache.derby.jdbc.ClientDriver

class org.hsqldb.jdbc.JDBCDriver

class net.ucanaccess.jdbc.UcanaccessDriver

class com.mysql.jdbc.Driver

List of all the Drivers after de-registration:

class oracle.jdbc.OracleDriver

class org.sqlite.JDBC

class org.apache.derby.jdbc.AutoloadedDriver

class org.apache.derby.jdbc.ClientDriver

class org.hsqldb.jdbc.JDBCDriver

class net.ucanaccess.jdbc.UcanaccessDriver

以上是 如何使用JDBC从驱动程序管理器的驱动程序列表中注销驱动程序? 的全部内容, 来源链接: utcz.com/z/327080.html

回到顶部