## de.ix.jspTutorial.database
Class DatabaseRetriever

    java.lang.Object
      |
      +--de.ix.jspTutorial.database.DatabaseRetriever

public class DatabaseRetriever
extends java.lang.Object

Diese Klasse bildet eine kleine Kapsel um das Absetzen einer beliebige SQL-Query. Die Klasse verwendet dazu eine von aussen zu spezifizieren Connection. Auf der Connection werden mittels Statement die SQL-Queries abgesetzt. Das so erhaltetne ResultSet wird in ResultObjects verpackt.

Nachfolgend ein Code-Fragment, welches die Anwendung des Retrievers zeigt:

       DatabaseRetriever retriever = new DatabaseRetriever();
       DatabaseConnection theConnection = new DatabaseConnection(
    	    "jdbc.idbDriver",
     	  "jdbc:idb:/jspTutorial_II/source/jspTutorial-app/WEB-INF/config/idb/jspTutorial.prp"
       theConnection.connect("jsp", "tutorial")
       retriever.setConnection(theConnection) ;
       try {

         theConnection = retriever.getConnection()
         theConnection.begin();

         ReferenceVector objects  = retriever.retrieve("select * from Pizza");
         for (Enumeration e=objects.elements(); e.hasMoreElements();) {
           I_DatabaseObject object = (I_DatabaseObject) e.nextElement();
           System.out.println(object);
          }

         theConnection.commit();

       } catch (Exception e) {
         theConnection.rollback();
         e.printStackTrace();
       }
    		finally {
       	theConnection.disconnect() ;
    		}

Wie an dem Fragment erkennbar, ist für jeden Store ein Retriever hinterlegt. Zuerst wird sich daher dieser Retriever besorgt, ein Transaktionsrahmen aufgebaut , sowie die Query ausgeführt.

Version:
  $Id:$
Author:
  Peter Rossbach (pr@webapp.de)

Field Summary
`private DatabaseConnection` `myConnection` Die JDBC-Connection
`static java.lang.String` `vcid` Version der Klasse

Constructor Summary
`DatabaseRetriever()`
`DatabaseRetriever(DatabaseConnection aConnection)`

Method Summary
`DatabaseConnection` `getConnection()` Diese Methode liefert den Wert des Attributes Connection.
`java.util.List` `retrieve(java.lang.String aSQLQueryString, java.lang.String aType)`
`java.util.List` `retrieve(java.lang.String aSQLQueryString, java.lang.String aType, I_DatabaseBinder aBinder)` Die Methode führt die SQL Anweisung aus und liefert das Resultat zurück.
`I_DatabaseObject` `retrieveOne(java.lang.String aSQLQueryString)` Die Methode führt die Query aus und liefert die erste Zeile des Query-Result zurück.
`void` `setConnection(DatabaseConnection aConnection)`

Methods inherited from class java.lang.Object
`<clinit>, clone, equals, finalize, getClass, hashCode, notify, notifyAll, registerNatives, toString, wait, wait, wait`

Field Detail

### vcid

    public static java.lang.String vcid

  Version der Klasse

### myConnection

    private DatabaseConnection myConnection

  Die JDBC-Connection

Constructor Detail

### DatabaseRetriever

    public DatabaseRetriever()

### DatabaseRetriever

    public DatabaseRetriever(DatabaseConnection aConnection)

Method Detail

### getConnection

    public DatabaseConnection getConnection()

  Diese Methode liefert den Wert des Attributes Connection.
  Returns:
    Wert der Variablen myConnection.

### setConnection

    public void setConnection(DatabaseConnection aConnection)

### retrieve

    public java.util.List retrieve(java.lang.String aSQLQueryString,
                                   java.lang.String aType)
                            throws java.sql.SQLException

### retrieve

    public java.util.List retrieve(java.lang.String aSQLQueryString,
                                   java.lang.String aType,
                                   I_DatabaseBinder aBinder)
                            throws java.sql.SQLException

  Die Methode führt die SQL Anweisung aus und liefert das Resultat zurück.
  Parameters:
    `aSQLQueryString` -
  Returns:
    List der Objekte

### retrieveOne

    public I_DatabaseObject retrieveOne(java.lang.String aSQLQueryString)
                                 throws java.sql.SQLException

  Die Methode führt die Query aus und liefert die erste Zeile des Query-Result zurück. Der Rest des Resultset geht dabei verloren. Der großer Vorteil dieser Methode gegenüber fetch ist, dass sofort ein Objekt vom Typ I_DatabaseObject zurückkommt sowie die Bestimmung dieses Objektes wesentlich schneller geht.
  Parameters:
    `aSQLQueryString` -
  Returns:
    Objekt vom Typ I_DatabaseObject

~ Das iX JSP Tutorial III - © 2000 by Peter Roßbach ~