Het registreert het omdat het de klasse in het geheugen laadt en de statische initialisatieprogramma's van de klasse uitvoert. De statische initialisatiecode roept vervolgens het JDBC-framework aan om te zeggen "Hallo, ik ben een JDBC-stuurprogramma" (door DriverManager.registerDriver
).
De chauffeursklasse ziet er bijvoorbeeld vaag uit zoals dit:
package com.example.jdbc;
import java.sql.DriverManager;
public class Driver implements java.sql.Driver {
static {
DriverManager.registerDriver(new Driver());
}
// ...implementation...
}
Wanneer u vervolgens Class.forName("com.example.jdbc.Driver")
doet , het laadt de klasse en voert de statische initialisatie uit, die een instantie maakt en deze registreert bij de DriverManager
.
Ik moet er rekening mee houden dat zoals Andreas zegt , hebben moderne JDBC-stuurprogramma's u niet nodig om dit te doen.