Zugriff auf Daten von Anwendungsclients

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

  1. Importieren Sie die entsprechenden JDBC-API- und -Namenspakete:
    import java.sql.*;
    import javax.sql.*;
    import javax.naming.*;
  2. Erstellen Sie den ersten Namenskontext:
    InitialContext ctx = new InitialContext();
  3. 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
  4. 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
  5. 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));
    }
  6. Schließen Sie die im vorherigen Schritt verwendeten Datenbankobjekte. Dazu gehören auch alle ResultSet-, Statement-, PreparedStatement- und CallableStatement-Objekte.
  7. 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(); 

Symbol, das den Typ des Artikels anzeigt. Taskartikel



Symbol für Zeitmarke Letzte Aktualisierung: 25.05.2016
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=tdat_accdfac
Dateiname:tdat_accdfac.html