Class.forName(JDBC_DRIVER) in Java 6 nicht mehr erforderlich
Der Artikel diskutiert die angebliche Beseitigung der Notwendigkeit, einen JDBC-Treiber zu registrieren Verwendung von Class.forName(JDBC_DRIVER) seit Java 6. Diese Annahme beruht auf der Annahme, dass der DriverManager vom System abhängig ist Eigenschaft „jdbc.drivers“, um den entsprechenden Treiber zu finden.
Das Drucken des Werts von System.getProperty(„jdbc.drivers“) gibt jedoch null zurück, sodass Benutzer nicht wissen, warum ihre Anwendungen weiterhin ordnungsgemäß funktionieren.
Antwort
Die offensichtliche Funktionalität der Anwendung trotz des Fehlens der Die Systemeigenschaft „jdbc.drivers“ steht in keinem Zusammenhang mit dieser Eigenschaft. Mit Java 6 wurde das Konzept der Dienstanbieter eingeführt, das es der JVM ermöglicht, beim Start automatisch Implementierungen bekannter Schnittstellen zu erkennen.
JDBC-Treiber, die diesem Mechanismus folgen, werden automatisch vom DriverManager registriert, wodurch Class.forName() überflüssig wird . Dies gilt jedoch nur, wenn der Treiber die Dienstanbieterregistrierung unterstützt.
Um die Dienstregistrierung zu initiieren, muss der Treiber ein Verzeichnis mit dem Namen „services“ im META-INF-Verzeichnis in seine JAR-Datei aufnehmen. Dieses Verzeichnis sollte eine Textdatei mit dem Namen „java.sql.Driver“ enthalten, die die implementierende Klasse für den JDBC-Treiber angibt.
Das obige ist der detaillierte Inhalt vonIst Class.forName(JDBC_DRIVER) seit Java 6 wirklich veraltet?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!