Show TOC Anfang des Inhaltsbereichs

Hintergrunddokumentation Verbindung zur Datenbank  Dokument im Navigationsbaum lokalisieren

Um einer Datenbank Befehle senden und Ergebnisse empfangen  zu können, brauchen wir zuerst eine Verbindung zur Datenbank. Um diese Verbindung hat sich bereits der Administrator des SAP J2EE Servers gekümmert. Er oder sie hat mit dem dbpool-Service eine javax.sql.DataSource unter einem logischen Namen angelegt, den wir benutzen können, um ein Connection-Objekt zu erzeugen. Um die DataSource zu identifizieren, benutzen wir den logischen Namen der DataSource und den JNDI Service (Java Naming and Directory Interface javax.naming.*) des J2EE Servers. Nehmen wir an, der logische Name sei "CarRentalDB". Das folgende Code-Beispiel zeigt dann, wie wir das benötigte  DataSource-Objekt erhalten.

 

import javax.naming.Context;

import javax.naming.InitialContext;

import javax.sql.DataSource;

 

Context ctx = new InitialContext();

DataSource ds = (DataSource) ctx.lookup("jdbc/CarRentalDB");

 

In der ersten Zeile wird ein Kontext erzeugt, der der Ausgangspunkt für die Suche mittels JNDI ist. In der zweiten Zeile wird dann mittels der Methode lookup die gesuchte DataSource nachgeschlagen und zurückgeliefert. Zu beachten ist, dass vor dem logischen Namen der DataSource das Präfix jdbc/ zu setzen ist.


Vom
DataSource-Objekt ist es jetzt nur noch ein kleiner Schritt zum Connection-Objekt.

 

import java.sql.Connection;

 

Connection con = ds.getConnection();

 

Das Connection-Objekt ist Dreh- und Angelpunkt für das Arbeiten mit einer Datenbank. Es verfügt über die Methoden, die uns die weiteren Objekte liefern, die wir benötigen, um Befehle an die Datenbank zu senden:

 

·        Die Methode createStatement liefert ein Statement-Objekt, mit dem einfache SQL-Befehle an die Datenbank gesendet werden können.

·        Die Methode createPreparedStatement liefert ein PreparedStatement-Objekt, mit dem SQL-Befehle, die Parameter (Host-Variablen) enthalten, an die Datenbank abgesetzt werden können.

 

Die Klassen Statement und PreparedStatement werden in den nächsten Abschnitten detaillierter vorgestellt.

 

Ende des Inhaltsbereichs