Rejestruje go, ponieważ ładuje klasę do pamięci i uruchamia statyczne inicjatory klasy. Statyczny kod inicjatora następnie wywołuje platformę JDBC, aby powiedzieć „Cześć, jestem sterownikiem JDBC” (wywołując DriverManager.registerDriver
).
Np. klasa sterownika będzie wyglądać niewyraźnie tak:
package com.example.jdbc;
import java.sql.DriverManager;
public class Driver implements java.sql.Driver {
static {
DriverManager.registerDriver(new Driver());
}
// ...implementation...
}
Następnie, gdy wykonasz Class.forName("com.example.jdbc.Driver")
, ładuje klasę i uruchamia statyczny inicjator, który tworzy instancję i rejestruje ją w DriverManager
.
Powinienem zauważyć, że jak mówi Andreas , nowoczesne sterowniki JDBC nie wymagają tego.