Download Datenbanken

Transcript
Datenbanken
Hierfür bedient sich die Java Virtual Machine des Classloaders. Die Klasse, die
geladen werden soll, muß sich in einem Pfad, einer ZIP - oder JAR- Datei befinden, die
im CLASSPATH eingetragen ist (siehe Installationshinweise).
Ist der Classloader nicht in der Lage, dieTreiberklasse hinzuzubinden, erzeugt er eine
java.lang.ClassNotFoundException.
Wird der Treiber erfolgreich geladen, meldet er sich mit seinem Initialisierungscode
beim JDBC-Treibermanager an.
Selbstverständlich kann ein Programm viele verschiedene JDBC-Treiber gleichzeitig
laden, um verschiedene Datenbanken parallel anzusprechen. Dabei sind die einzelnen
Treiber meistens herstellerspezifisch.
Im Falle des Oracle-Treibers wird empfohlen, den JDBC-OCI Treiber zu registrieren.
Dies erfolgt mit Hilfe des Aufrufs von
DriverManager.registerDriver (new oracle.jdbc.driver.OracleDriver());
Öffnen einer Datenbank
Das Öffnen der Datenbank kann unter Verwendung zweier Methoden erfolgen. Die erste
Methode, die nur für den direkten Aufruf des OCI –Connects geeignet ist, verwendet den
Datenbankalias oder TNSName, der in der tnsnames.ora spezifiert wird, wie bereits im
vorangegangenen Kapitel über die Konfiguration des SQL*Nets beschrieben wurde.
Connection conn =
DriverManager.getConnection ("jdbc:oracle:oci7:@mydatabase","scott",
"tiger");
Scott ist in diesem Fall der Username, Tiger das Passwort und @mydatabase der TNSName der
Datenbank. Weiterhin ist angegeben, daß es sich um einen Aufruf des OCI7 Treibers handelt.
Eine weitere Möglichkeit, das Öffnen der Datenbank durchzuführen, falls keine sauber
erstellte Datei tnsnames.ora vorliegt, ist die Ergänzung des Strings um eine gültige
SQL*Net Namensspezifikation:
Connection conn =
DriverManager.getConnection
("jdbc:oracle:oci7:@(description=(address=(host=myhost)
(protocol=tcp)(port=1521))(connect_data=(sid=orcl)))","scott",
"tiger");
Man erkennt die Ähnlichkeit zu den Eintragungen in der Datei tnsnames.ora. Im
Connectstring werden direkt der Hostname, das Protokoll und der Port angegeben.
Weiterhin enthält er eine SID (System Identifier), hier den String ‚orcl‘. Username und
Passwort bleiben gleich. Diese Aufrufe gelten aber nur für eine Verbindung über das
Oracle Call Interface von einem normalen Java-Programm aus.
Im Falle eines Applets wird der Zugriff auf die Datenbank über das Internet gewünscht.
Selbstverständlich ist für diese Art der Verbindung das SQL*Net nutzlos, da nicht jeder
Client-Rechner über eine Oracle-Installation verfügen muß, um online auf eine
Datenbank zuzugreifen.
Für diese spezielle Zugriffsmöglichkeit wurde der Oracle JDBC Thin Treiber konzipiert.
Connection conn =
DriverManager.getConnection
("jdbc:oracle:thin:scott/[email protected]:1527:oradb" );
284