为什么Service.providers(java.sql.Driver.class)总能得到mysql的驱动程序? p

时间:2014-04-17 08:12:17

标签: java mysql jdbc

我现在正在测试Proxool连接池(数据库是mysql),我发现一个非常奇怪的情况,即mysql的驱动程序总是可以注册到DriverManager,即使我没有显式调用

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

虽然Proxool的驱动程序不能。我查看JDK代码并找到一条线索,即

Service.providers(java.sql.Driver.class) 

可以获得mysql的驱动程序而无法获得Proxools。这也许是原因。我的问题是为什么这个方法可以自动找到mysql的驱动程序?

以下是我的测试代码:

public static void main(String[] args) throws Exception{
   Iterator drivers = Service.providers(java.sql.Driver.class);
   while(it.hasNext()){
      System.out.println(it.next());
   }
}

结果是:

sun.jdbc.odbc.JdbcOdbcDriver@31d520c4
com.mysql.jdbc.Driver@1f5a3d6b

0 个答案:

没有答案