Frage zu DB Driver

Julius

Mitglied
Hi,

ich möchte gerne eine Datenbankverbindung aufbauen.
Dazu habe ich eine eigene Klasse erstellt, in der pro neuer Instanz eine Verbindung realisiert wird.
Im Konstruktor lade ich jedes mal den Treiber neu.

Darauf bezieht sich auch meine Frage.
Reicht es, wenn der Treiber bei Programmstart ein Mal geladen wird oder muss er bei jeder neuen Verbindung erneut geladen werden?
Falls ersteres zutrifft, kann ich mir den Konstruktor ja sparen.

Grüße
 

Der Wolf

Erfahrenes Mitglied
Hey,

normalerweise sollte es reichen, wenn du den Treiber zu Begin deiner Applikation lädst und nur neu initialisierst wenn die Verbindung (aus welchen Gründen auch immer) zwischenzeitlich verschwunden ist.

Gruß,
Wolf
 

slowfly

Erfahrenes Mitglied
Hallo

Ich bin nicht 100%ig sicher, das müsste irgendwie so funktionieren:
Wenn man ein Konstrukt wie Class.forName("com.bla.Driver") oder ein DriverManager.registerDriver() aufrift, wird der Datenbanktreiber mit dem entsprechenden Protokoll und Subprotokoll registriert, z.B: jdbc:eek:racle:thin. Wenn man nun DriverManager.getConnection() aufruft, merkt der DriverManager anhand vom Übergabeparameter (jdbc:eek:racle:thin:@server:port:schema), welchen Treiber er verwenden muss.

Von daher: Den Treiber nur einmal registrieren.

http://docs.oracle.com/javase/1.4.2...rManager.html#getConnection(java.lang.String)
http://docs.oracle.com/javase/1.4.2...rManager.html#registerDriver(java.sql.Driver)
Hier interessant: A newly-loaded driver class should call the method registerDriver to make itself known to the DriverManager.
-> Wird die Klasse initial geladen, muss sie sich selber beim DriverManager registrieren (Class.forName()).

Gruss
slowy