当前位置:  开发笔记 > 编程语言 > 正文

加载驱动程序和注册驱动程序之间的区别

如何解决《加载驱动程序和注册驱动程序之间的区别》经验,为你挑选了0个好方法。

我是JDBC的新手,我写了一个小程序来检查注册的驱动程序.我想做以下事情

    我检查了寄存器的数量而没有加载任何驱动程序:

    我期待它给出了3名注册的车手让我感到惊讶.

    我使用Class.forName()加载了一个驱动程序;

    我期待它向我展示四位车手再次受到惊吓,它只显示3名车手

    最后,我使用DriverManager注册驱动程序

    现在它显示了四个驱动程序

任何人都可以帮助我理解这里发生的事情.我的问题如下

    这三个驱动程序是否默认加载/注册.

    不会使用Class.forName注册驱动程序加载类?(我想答案不是因为从我的经验,我要求这只是为了确定)如果没有然后加载类只是为了寻求执行像(DriverManager等...)的界面

    最后,加载驱动程序和注册驱动程序之间的区别是什么

我列出了程序和输出供您参考.

import java.sql.Driver;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.Enumeration;
import oracle.jdbc.driver.OracleDriver;

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

     //checking for registered drivers
     System.out.println("Drivers registered initially");
     Enumeration enumm = DriverManager.getDrivers();
     int count=1;
     while(enumm.hasMoreElements()){
         Driver dr=(Driver)enumm.nextElement();
         System.out.println(count+" "+dr);
         count++;
     }

     //loading the driver
     Class.forName("oracle.jdbc.driver.OracleDriver");
     System.out.println("\n\nDrivers after class loading");
     enumm = DriverManager.getDrivers();
     count=1;
     while(enumm.hasMoreElements()){
         Driver dr=(Driver)enumm.nextElement();
         System.out.println(count+" "+dr);
         count++;
     }

     //After Registering driver
     OracleDriver odr= new OracleDriver();
     DriverManager.registerDriver(odr);
     System.out.println("\nAfter registering oracle driver");
     enumm = DriverManager.getDrivers();
     count=1;
     while(enumm.hasMoreElements()){
         Driver dr=(Driver)enumm.nextElement();
         System.out.println(count+" "+dr);
         count++;
     }

}
}

输出:

Drivers registered initially

1 sun.jdbc.odbc.JdbcOdbcDriver@2c84d9

2 oracle.jdbc.OracleDriver@8bdcd2

3 com.mysql.jdbc.Driver@1f31ad9

Drivers after class loading

1 sun.jdbc.odbc.JdbcOdbcDriver@2c84d9

2 oracle.jdbc.OracleDriver@8bdcd2

3 com.mysql.jdbc.Driver@1f31ad9

After registering oracle driver

1 sun.jdbc.odbc.JdbcOdbcDriver@2c84d9

2 oracle.jdbc.OracleDriver@8bdcd2

3 com.mysql.jdbc.Driver@1f31ad9

4 oracle.jdbc.driver.OracleDriver@167acf2

推荐阅读
mylvfamily
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有