Обсуждение: Why driver does not need to be registered?

Поиск
Список
Период
Сортировка

Why driver does not need to be registered?

От
Jesus Maudes
Дата:
Hi

I'm using postgresql-8.3-604.jdbc3.jar driver

I have a very simple java program to inspect what drivers are initially loaded:

import java.sql.DriverManager;

public class TestDrivers {
   
    public static void main(String [] argv) {
       
    
        java.util.Enumeration myDrivers = DriverManager.getDrivers();

    while (misDrivers.hasMoreElements()){
       System.out.println(misDrivers.nextElement());
    }
       

   
    }
   
}


Re: Why driver does not need to be registered?

От
Kris Jurka
Дата:

On Thu, 26 Feb 2009, Jesus Maudes wrote:

> [Why does the driver show up even though I didn't register it?]
>

The JDBC4 spec included with the 1.6 JVM includes autoloading
functionality by including a special file in the driver's jar file.

Section 9.2.1 of the JDBC4 spec says:

     The DriverManager.getConnection method has been enhanced to support
     the Java Standard Edition Service Provider mechanism. JDBC 4.0
     Drivers must include the file META-INF/services/java.sql.Driver.
     This file contains the name of the JDBC driver's implementation
     of java.sql.Driver.

So the JVM will scan the jars available and look for this special file and
load the driver specified in it automatically.

Kris Jurka