18.4.1 | Laden des Treibers |
JDBC-Anwendungen müssen vor der Ausführung von SQL-Anweisungen die benötigte JDBC-Treiber-Klasse laden.
Bei der Registrierung des Treibers im Programmcode reicht es prinzipiell aus, die Treiber-Klasse in die Anwendung zu laden. Hierzu wird die Methode Class.forName() mit dem vollqualifizierten Klassennamen der Treiberklasse aufgerufen. Nachdem der Klassenlader die Klasse geladen hat, werden die statischen Initialisierungsabschnitte ausgeführt, in denen sich der Treiber nach der JDBC-Spezifikation beim Treibermanager registrieren muss.
Weitere Konstrukte, die man häufig in Java-Programmen zur Treiberregistrierung sieht, sind das Anlegen eines neuen Exemplars der Treiberklasse sowie die explizite Registrierung über die Methode DriverManager.registerDriver() des Treibermanager-API. Da beim Anlegen eines neuen Exemplars zuvor die zugehörige Klasse über den Klassenlader geladen werden muss, registriert sich ein JDBC-konformer Treiber bereits beim Laden. Die letzten zwei genannten Techniken sind daher zwar nicht falsch, für den Anwender eines Treibers im Prinzip aber überflüssig, da die eigentliche Registrierung schon beim Laden durchgeführt wird.
Eine Alternative zur Registrierung des Treibers im Programm-Code stellt die Registrierung beim Aufruf des Java-Interpreters dar. Hierzu muss man über die Option -D die Property jdbc.drivers mit einer Liste von Klassennamen übergeben, die JDBC-Treiber implementieren. In der Abbildung wird nur eine Treiberklasse genannt. Mehrere Treiberklassen können per Doppelpunkt (»:«) getrennt genannt werden:java -Djdbc.drivers=<treiber1>:<treiber2>:...:<treiberN> <klasse>Voraussetzung dafür ist, dass sich die Treiberklassen im Klassenpfad befinden, genau wie alle anderen Java-Klassen auch.