Wenn Sie von einem
Java™ EE-Anwendungsclient
direkt auf eine Datenbank zugreifen möchten,
müssen Sie von einer im Clientimplementierungsdeskriptor konfigurierten Ressourcenreferenz
ein Objekt javax.sql.DataSource anfordern. Diese Ressourcenreferenz wird als Teil des Implementierungsdeskriptors
für die Clientanwendung konfiguriert und verweist auf ein vorkonfiguriertes Datenquellenobjekt.
Informationen zu diesem Vorgang
Beim Datenzugriff von einem Anwendungsclient aus werden auf der Clientseite
direkt die Verbindungsfunktionen des JDBC-Treibers verwendet. Die Vorteile der zusätzlichen Pooling-Unterstützung in der
Laufzeit des Anwendungsservers können nicht genutzt werden. Aus diesem Grunde sollte Ihre Clientanwendung für den Datenzugriff
eine auf der Serverseite aktive
Enterprise-Bean verwenden. Diese Enterprise-Bean kann Verbindungen
wiederverwenden und die von der Laufzeit des Produkts bereitgestellten Zusatzfunktionen
nutzen.
Vorgehensweise
- Importieren Sie die entsprechenden JDBC-API- und -Namenspakete:
import java.sql.*;
import javax.sql.*;
import javax.naming.*;
- Erstellen Sie den ersten Namenskontext:
InitialContext ctx = new InitialContext();
- Suchen Sie im Objekt InitialContext nach einem Datenquellenobjekt in einer Ressourcenreferenz.
javax.sql.DataSource ds = (DataSource)ctx.lookup("java:comp/env/jdbc/myDS");
//jdbc/myDS steht hier für den Namen der Ressourcenreferenz
- Fordern Sie eine java.sql.Connection von der Datenquelle an.
- Wenn für die Verbindung keine Benutzer-ID und kein Kennwort erforderlich sind oder Sie die Werte
defaultUser und defaultPassword verwenden möchten, die später beim Erstellen der Datenquelle im ACRCT
(Application Client Resource Configuration Tool) festgelegt werden,
verwenden Sie die folgende Methode:
java.sql.Connection conn = ds.getConnection();
- Andernfalls sollte die Verbindung mit einer bestimmten Benutzer-ID und einem bestimmten Kennwort hergestellt werden:
java.sql.Connection conn = ds.getConnection("user", "password");
//Benutzer und Kennwort stehen hier für die Benutzer-ID und das Kennwort für die Verbindung
- Führen Sie mit der Schnittstelle java.sql.Statement, java.sql.PreparedStatement
oder java.sql.CallableStatement eine Datenbankabfrage durch.
Statement stmt = conn.createStatement();
String query = "Select FirstNme from " + owner.toUpperCase() + ".Employee where LASTNAME = '" + searchName + "'";
ResultSet rs = stmt.executeQuery(query);
while (rs.next()) { firstNameList.addElement(rs.getString(1));
}
- Schließen Sie die im vorherigen Schritt verwendeten Datenbankobjekte. Dazu gehören auch alle
ResultSet-, Statement-, PreparedStatement- und CallableStatement-Objekte.
- Schließen Sie die Verbindung. Im Idealfall sollte die Verbindung in einem finally-Block
im Anschluss an die try...catch-Anweisung mit der Datenbankoperation
geschlossen werden. Dadurch wird sichergestellt, dass die Verbindung auch im Falle einer Ausnahme
beendet wird.
conn.close();