Verbindung zur Datenbank
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.