DriverManager-Treiberregistrierung: Class.forName() Verwendung in Java 6 und höher
Frage:
Ist Class.forName(JDBC_DRIVER) seit Java 6 nicht mehr für die JDBC-Treiberregistrierung erforderlich? Obwohl in der Dokumentation darauf hingewiesen wird, dass die Systemeigenschaft jdbc.drivers den Treiberpfad bereitstellen sollte, gibt das Drucken dieser Eigenschaft Null zurück. Warum funktioniert die Anwendung immer noch ordnungsgemäß?
Antwort:
Die Eliminierung von Class.forName() in Java 6 (und JDBC4) hat nichts mit den jdbc.drivers zu tun Eigentum. Java hat ein „Dienstanbieter“-Konzept eingeführt, bei dem konforme Treiber sich beim Start selbst bei der JVM registrieren können.
Dienstanbieterregistrierung:
Treiber, die sich an diesen Standard halten, finden hier statt ein Services-Verzeichnis in ihrer JAR-Datei im META-INF-Verzeichnis. Dieses Verzeichnis enthält eine Textdatei mit dem Namen java.sql.Driver, die die implementierende Klasse angibt.
Treibererkennung:
Die JVM erkennt und registriert automatisch Treiber, die diese Schnittstelle implementieren . Dadurch entfällt die Notwendigkeit einer expliziten Registrierung mit Class.forName() für kompatible Treiber.
App-Funktionalität:
Im bereitgestellten Beispiel funktioniert die Anwendung möglicherweise trotzdem ordnungsgemäß der Null-Rückgabewert für System.getProperty("jdbc.drivers"), wenn:
Das obige ist der detaillierte Inhalt vonIst Class.forName() für die JDBC-Treiberregistrierung in Java 6 und höher erforderlich?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!