Den registrerar den eftersom den laddar klassen i minnet och kör klassens statiska initierare. Den statiska initialiseringskoden anropar sedan JDBC-ramverket för att säga "Hej, jag är en JDBC-förare" (genom att anropa DriverManager.registerDriver
).
Till exempel kommer förarklassen att se vagt ut så här:
package com.example.jdbc;
import java.sql.DriverManager;
public class Driver implements java.sql.Driver {
static {
DriverManager.registerDriver(new Driver());
}
// ...implementation...
}
Sedan när du gör Class.forName("com.example.jdbc.Driver")
, den laddar klassen och kör den statiska initieraren, som skapar en instans och registrerar den med DriverManager
.
Jag bör notera att som Andreas säger , moderna JDBC-drivrutiner behöver du inte för att göra detta.