Heim > Datenbank > MySQL-Tutorial > Ist Class.forName() für die JDBC-Treiberregistrierung in Java 6 und höher erforderlich?

Ist Class.forName() für die JDBC-Treiberregistrierung in Java 6 und höher erforderlich?

DDD
Freigeben: 2025-01-04 12:56:40
Original
606 Leute haben es durchsucht

Is Class.forName() Necessary for JDBC Driver Registration in Java 6 and Later?

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:

  • Der verwendete Treiber unterstützt den Dienstanbieter Registrierung.
  • Die JAR-Datei des Treibers enthält das erforderliche Dienstverzeichnis.

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage