Den registrerer den, fordi den indlæser klassen i hukommelsen og kører klassens statiske initialiseringsprogrammer. Den statiske initialiseringskode kalder derefter ind i JDBC-rammen for at sige "Hej, jeg er en JDBC-driver" (ved at kalde DriverManager.registerDriver
).
F.eks. vil førerklassen se vagt ud sådan her:
package com.example.jdbc;
import java.sql.DriverManager;
public class Driver implements java.sql.Driver {
static {
DriverManager.registerDriver(new Driver());
}
// ...implementation...
}
Når du derefter gør Class.forName("com.example.jdbc.Driver")
, indlæser den klassen og kører den statiske initialisering, som opretter en instans og registrerer den med DriverManager
.
Jeg skal bemærke, at som Andreas siger , moderne JDBC-drivere behøver dig ikke til at gøre dette.