Heim > Datenbank > MySQL-Tutorial > Ist Class.forName() für die JDBC-Treiberregistrierung noch notwendig?

Ist Class.forName() für die JDBC-Treiberregistrierung noch notwendig?

Patricia Arquette
Freigeben: 2025-01-05 04:09:39
Original
432 Leute haben es durchsucht

Is Class.forName() for JDBC Driver Registration Still Necessary?

JDBC-Treiberregistrierung: Class.forName() veraltet

Die Frage wirft Bedenken hinsichtlich der veralteten Anforderung auf, JDBC-Treiber mithilfe von Class.forName zu registrieren (), wie in einer früheren Stack Overflow-Diskussion vorgeschlagen. Darin heißt es, dass DriverManager seit Java 6 die Systemeigenschaft „jdbc.drivers“ verwendet, um den entsprechenden Treiber abzurufen, wodurch dieser Schritt überflüssig wird. Allerdings stößt das Poster beim Drucken der Eigenschaft auf einen Nullwert.

Antwort:

Das Problem liegt nicht an der Eigenschaft „jdbc.drivers“, sondern an einem Konzept eingeführt in Java 6 und JDBC4, bekannt als „Dienstanbieter“. Dabei werden Implementierungen bekannter Schnittstellen beim Start automatisch von der JVM erkannt. Kompatible JDBC-Treiber nutzen diesen Mechanismus, sodass der DriverManager sie mühelos registrieren kann. Daher wird Class.forName() nur dann überflüssig, wenn Treiber diese Funktion unterstützen.

Die Dienstregistrierung wird durch das Vorhandensein eines „services“-Verzeichnisses im META-INF-Verzeichnis der JAR-Datei des Treibers ausgelöst. Dieses Verzeichnis muss eine Textdatei enthalten, die den Namen der implementierten Schnittstelle (z. B. „java.sql.Driver“ für JDBC-Treiber) und die implementierende Klasse enthält.

Das obige ist der detaillierte Inhalt vonIst Class.forName() für die JDBC-Treiberregistrierung noch notwendig?. 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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage