dbutils
Class RamTable

java.lang.Object
  |
  +--dbutils.RamTable
All Implemented Interfaces:
java.io.Serializable

public class RamTable
extends java.lang.Object
implements java.io.Serializable

Abbildung einer Datenbanktabelle in eine Java-String-Struktur. Die Namen der Spalten werden übernommen.

Sprach- und datenbankabhängige Konvertierungen sollten beim Füllen der Tabelle erfolgen.

Diese Klasse ist entstanden, um innerhalb von Web-Anwendungen Tabellen auszugeben. Dabei sollte in der Anwendungslogik möglichst wenig Abhängigkeit zu einer bestimmten DB enthalten sein (insbesondere konnte nicht davon ausgagangen werden, das ein JDBC-Treiber vorhanden ist). Weiterhin sollte auch niemand in die Versuchung kommen, Tabellenseiten mit geöffnetem DB-Cursor im Web zum Blätteren anzubieten.

Vorgehen


ERSTELLEN:
Datenbankabhängig wird die RamTable konstruiert, etwa in einer Klasse,
Db, welche eine bestimmte Datenbank abstrahiert (Oracle, Sas, ...).

RamTable rt = Db.getRamTable("(Select Name, Vorname from tabelle1)");
LESEN: 
Iterator   e = rt.iterator();
int  idxName = rt.getColumnIndex( "Name");
while (e.hasNext())
{
        aktuellerSatz = (String[])e.next()      ;
        String aktName = aktuellerSatz[ idxName ];
        ...
        
}

See Also:
Serialized Form

Constructor Summary
RamTable(java.lang.String Table)
           
 
Method Summary
 void addColumnNames(java.lang.String[] names)
          Die Spaltennamen in einem String-Array hinzufügen
 boolean addRow(java.lang.String[] row)
          Eine Zeile hinzufügen
 java.lang.String getCell(int row, int col)
          Gibt den Inhalt der Zelle in Zeile 'row' und Spalte 'col' zurück; (0,0) sind die Koordinaten der ersten Zelle.
 int getColumnIndex(java.lang.String colName)
          Gibt den Index der Spalte mit dem Namen 'colName' zurück.
 java.lang.String[] getColumnNames()
          Gibt die Spaltennamen als Stringarray
 java.util.SortedSet getColumnSet(int columnIndex)
           
 java.util.SortedSet getColumnSet(java.lang.String colName)
           
 java.lang.String getFirstCell(java.lang.String whereColName, java.lang.String whereColValue, java.lang.String colName)
          Gib den Inhalt einer Zelle mit der Spalte colName und der Zeileneinschränkung (Filter) whereColName und whereColValue.
 java.lang.String[] getRow(int index)
          Gibt die Zeile 'row' zurück;
 java.lang.String[] getRow(java.lang.String colName, java.lang.String colValue)
           Gib die erste Zeile der Tabelle, bei der in einer gegebenen Spalte ein bestimmter Wert enthalten ist.
 boolean isEmpty()
          Prüft, ob die Tabelle keine Zeilen hat
 java.util.Iterator iterator()
          Gibt einen Iterator ueber die Zeilenliste zurück.
 int size()
          Gibt die Anzahl der Zeilen zurück
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

RamTable

public RamTable(java.lang.String Table)
Method Detail

addRow

public boolean addRow(java.lang.String[] row)
Eine Zeile hinzufügen


addColumnNames

public void addColumnNames(java.lang.String[] names)
Die Spaltennamen in einem String-Array hinzufügen


getColumnNames

public java.lang.String[] getColumnNames()
Gibt die Spaltennamen als Stringarray


getColumnIndex

public int getColumnIndex(java.lang.String colName)
Gibt den Index der Spalte mit dem Namen 'colName' zurück. Die erste Spalte hat den Index 0


iterator

public java.util.Iterator iterator()
Gibt einen Iterator ueber die Zeilenliste zurück.


isEmpty

public boolean isEmpty()
Prüft, ob die Tabelle keine Zeilen hat


size

public int size()
Gibt die Anzahl der Zeilen zurück


getCell

public java.lang.String getCell(int row,
                                int col)
Gibt den Inhalt der Zelle in Zeile 'row' und Spalte 'col' zurück; (0,0) sind die Koordinaten der ersten Zelle.


getRow

public java.lang.String[] getRow(int index)
Gibt die Zeile 'row' zurück;


getRow

public java.lang.String[] getRow(java.lang.String colName,
                                 java.lang.String colValue)

Gib die erste Zeile der Tabelle, bei der in einer gegebenen Spalte ein bestimmter Wert enthalten ist. Führt dieser Filter zu keinem Treffer, ist das Ergebnis null .

In SQL-Notation:

        select * 
        from table 
        where whereColName=whereColValue  
        

Parameters:
colName - Name derSpalte
colValue - Wert der Spalte

getFirstCell

public java.lang.String getFirstCell(java.lang.String whereColName,
                                     java.lang.String whereColValue,
                                     java.lang.String colName)
Gib den Inhalt einer Zelle mit der Spalte colName und der Zeileneinschränkung (Filter) whereColName und whereColValue. Wenn der Filter zu keinem Treffer führt, ist das Ergebnis null .

In SQL-Notation:

        select colName 
        from table 
        where whereColName=whereColValue  
        

wobei nur die "erstbeste" Zeile berücksichtigt wird. Eindeutig ist der Treffer, wenn der Filter auf eine Spalte gesetzt wird, die Primärschlüssel in der Ursprungstabelle ist.

Parameters:
colName - Name derSpalte, deren Inhalt interessiert.
whereColName - Name der Spalte, fuer die eine Einschränkung gemacht werden soll
whereColValue - Wert der Spalteneinschränkung

getColumnSet

public java.util.SortedSet getColumnSet(java.lang.String colName)

getColumnSet

public java.util.SortedSet getColumnSet(int columnIndex)