Es registriert es, weil es die Klasse in den Speicher lädt und die statischen Initialisierer der Klasse ausführt. Der statische Initialisierungscode ruft dann das JDBC-Framework auf, um zu sagen:„Hallo, ich bin ein JDBC-Treiber“ (durch Aufrufen von DriverManager.registerDriver
).
Beispielsweise sieht die Fahrerklasse vage aus so:
package com.example.jdbc;
import java.sql.DriverManager;
public class Driver implements java.sql.Driver {
static {
DriverManager.registerDriver(new Driver());
}
// ...implementation...
}
Wenn Sie dann Class.forName("com.example.jdbc.Driver")
ausführen , lädt es die Klasse und führt den statischen Initialisierer aus, der eine Instanz erstellt und beim DriverManager
registriert .
Ich sollte beachten, dass wie Andreas sagt , brauchen Sie dies bei modernen JDBC-Treibern nicht.