de.pkjs.pl
Interface IPLContext

All Known Implementing Classes:
PL, PLTransactionContext

public interface IPLContext

Author:
ikunin

Method Summary
 Request addRequest(JDataRow metaDataRow)
          Erzeugt einen Request aus Metadaten
 boolean commitTransaction(java.lang.String transName)
          Beendet die Transaktion mit dem angegebenen Namen, die zuvor mit startTransaktion gestartet wurde.
 int executeBatchStatement(java.lang.String name)
          Führt ein Batch-Statement aus.
 int executeBatchStatement(java.lang.String name, ParameterList list)
          Führt ein Batch-Statement aus.
 int executeSql(java.lang.String sqlCommand)
          Führt ein beliebiges SQL-Command aus (Update, Insert, Delete).
 int executeSql(java.lang.String sqlCommand, ParameterList parameters)
          Führt ein beliebiges SQL-Command aus (Update, Insert, Delete).
 int executeSqlPara(java.lang.String sqlCommand, java.util.Vector<java.lang.Object> parameter)
          Führt ein beliebiges SQL-Statement aus, wobei die Parameter für dieses Statement in einem Vector übergeben werden.
 int executeStatement(java.lang.String name)
          Führt ein benanntes Statement (UPDATE, INSERT, DELETE) aus.
 int executeStatement(java.lang.String name, ParameterList parameters)
          Führt ein benanntes Statement (UPDATE, INSERT, DELETE) aus.
 JDataSet getAll(java.lang.String datasetname)
          Liefert einen Dataset ohne Angabe eines Schlüssels; also vor allem eine Menge von Datensätzen - bis zum Inhalt einer kompletten Tabelle.
 long getConnectionTimeOut()
           
 Database getCurrentDatabase()
          Liefert die Datenbank
 java.lang.String getCurrentDatabaseName()
          Liefert den Namen der verwendeten Datenbank.
 java.lang.String getDatabaseMetaData()
          Liefert die MetaDaten der CurrentDatabase.
 electric.xml.Document getDatabaseMetaDataDoc()
           
 DataRowIterator getDataRowIterator(java.lang.String datasetName, java.lang.String tablename, java.lang.String sql, ParameterList list)
          Während 'normalerweise' ein DataSet vom Persistenz-Layer immer fertig aufbereitet und komplett mit allen Daten übergeben wird, ist dieses Vorgehen bei großen Datenmengen nicht angebracht, nicht nur, daß das zu lange dauert, sondern weil auch ein OutOfMemory droht.
 DataRowIterator getDataRowIteratorStatement(java.lang.String statementName, ParameterList list)
           
 JDataSet getDataset(java.lang.String datasetname, long oid)
          Liefert einen Dataset mit dem angegebenen Namen und dem angegebenen Primärschlüssel der Wurzeltabelle.
 JDataSet getDataset(java.lang.String datasetname, long[] oids)
          Liefert einen Dataset mit den angegebenen Primärschlüsseln.
 JDataSet getDataset(java.lang.String datasetname, ParameterList parameters)
          Liefert einen Dataset mit dem angegebenen Namen sowie unter Angabe eine Liste von Parametern.
 JDataSet getDataset(java.lang.String datasetname, java.lang.String key)
          Liefert einen Dataset mit dem angegebenen Namen und dem angegebenen Primärschlüssel der Wurzeltabelle.
 java.util.ArrayList<java.lang.String> getDatasetNames()
          Liefert die Menge der definierten Datenbank-Zugriffe.
 JDataSet getDatasetSql(java.lang.String datasetname, java.lang.String sql)
          Liefert einen flachen Dataset auf Basis eines beliebigen SQL-Statements.
 JDataSet getDatasetSql(java.lang.String datasetname, java.lang.String sql, int limit)
           
 JDataSet getDatasetSql(java.lang.String datasetname, java.lang.String sql, ParameterList list)
          Liefert einen flachen Dataset auf Basis eines beliebigen SQL-Statements.
 JDataSet getDatasetSql(java.lang.String tablename, java.lang.String columns, java.lang.String from)
          Liefert einen flachen Dataset auf Basis eines beliebigen SQL-Statements.
 JDataSet getDatasetStatement(Database.NamedStatement nst, ParameterList list)
          Liefert einen DataSet unter Angabe eines benannten Statements.
 JDataSet getDatasetStatement(java.lang.String name)
          Liefert einen DataSet unter Angabe des Namens eines benannten Statements.
 JDataSet getDatasetStatement(java.lang.String name, ParameterList list)
          Liefert einen DataSet unter Angabe des Namens eines benannten Statements.
 java.lang.String getDatasetString(java.lang.String datasetname, long oid)
           
 java.text.SimpleDateFormat getDateFormat()
          Liefert das DateFormat aus PLConfig.xml
 JDataSet getEmptyDataset(java.lang.String datasetname)
          Liefert einen Dataset ohne Werte aber mit den Metadaten.
 int getMaxActive()
           
 int getMaxIdle()
           
 JDataSet getMetaDataSet()
           
 int getMinIdle()
           
 Database.NamedStatement getNamedStatement(java.lang.String name)
          Liefert ein benanntes Statement aus PLConfix.xml
 java.lang.String getNowString()
           
 int getNumActive()
           
 int getNumIdle()
           
 long getOID()
          Liefert einen neuen eindeutigen Schlüssel für den Client.
 long getOID(java.lang.String sequenceName)
          Liefert einen neuen eindeutigen Key aus der angegebenen Sequence.
 java.lang.String getPLMetaData()
          Liefert alle Informationen zum Persistenz-Layer als XML-Document.
 Request getRequest(java.lang.String datasetName)
          Liefert einen Request zu dem angegebenen Namen.
 java.text.SimpleDateFormat getTimeFormat()
           
 java.text.SimpleDateFormat getTimestampFormat()
           
 java.lang.String getTodayNowString()
           
 java.lang.String getTodayString()
          Liefert das heutige Datum im aus PLConfig.xml.
 int importJournal(java.util.List<electric.xml.Document> transaction)
           
 boolean isDebug()
          Liefert den Debug-Modus
 java.lang.String pingDatabase()
          Führt das "Ping"-Statement der Datenbank aus, wie in PLConfig unter definiert.
 void reset()
          Setzt den Persistenzlayer zurück.
 boolean rollbackTransaction(java.lang.String transName)
          Rollback der zuvor gestarteten Transaktion.
 int setDataset(JDataSet dataset)
          Der vom Client geänderter Dataset wird in die Datenbank zurückgeschrieben.
 int setDataset(java.lang.String dataset)
           
 void setDebug(boolean b)
          Setzt den Debug-Modus des Persistenzlayers.
 void shutdown()
          Deprecated.  
 void startTransaction(java.lang.String transName)
          Startet eine Transaktion mit dem angegebenen Namen.
 boolean testCommit()
          Überpüft, ob eine Transaktion mit commitTransaktion(name) beendet werden kann.
 

Method Detail

getCurrentDatabase

Database getCurrentDatabase()
Liefert die Datenbank

Returns:

getCurrentDatabaseName

java.lang.String getCurrentDatabaseName()
Liefert den Namen der verwendeten Datenbank.

Returns:
String

getDataset

JDataSet getDataset(java.lang.String datasetname,
                    long oid)
                    throws PLException
Liefert einen Dataset mit dem angegebenen Namen und dem angegebenen Primärschlüssel der Wurzeltabelle.

Parameters:
datasetname -
oid -
Returns:
Throws:
PLException

getDataset

JDataSet getDataset(java.lang.String datasetname,
                    long[] oids)
                    throws PLException
Liefert einen Dataset mit den angegebenen Primärschlüsseln.
TODO: Wenn kein ORDER BY definiert hängt die Reihenfolge der Rows von der Implmentierung der Datenbank ab.

Parameters:
datasetname -
oids -
Returns:
Throws:
PLException

getDataset

JDataSet getDataset(java.lang.String datasetname,
                    java.lang.String key)
                    throws PLException
Liefert einen Dataset mit dem angegebenen Namen und dem angegebenen Primärschlüssel der Wurzeltabelle.

Parameters:
datasetname -
key -
Returns:
Throws:
PLException

getDatasetString

java.lang.String getDatasetString(java.lang.String datasetname,
                                  long oid)
                                  throws PLException
Throws:
PLException

getDataset

JDataSet getDataset(java.lang.String datasetname,
                    ParameterList parameters)
                    throws PLException
Liefert einen Dataset mit dem angegebenen Namen sowie unter Angabe eine Liste von Parametern.

Parameters:
datasetname -
parameters -
Returns:
Throws:
PLException

setDataset

int setDataset(JDataSet dataset)
               throws PLException
Der vom Client geänderter Dataset wird in die Datenbank zurückgeschrieben.

Parameters:
values - Ein Dataset
Throws:
PLException

setDataset

int setDataset(java.lang.String dataset)
               throws PLException
Throws:
PLException

getAll

JDataSet getAll(java.lang.String datasetname)
                throws PLException
Liefert einen Dataset ohne Angabe eines Schlüssels; also vor allem eine Menge von Datensätzen - bis zum Inhalt einer kompletten Tabelle.

Parameters:
datasetname -
Returns:
String
Throws:
PLException

getDatasetSql

JDataSet getDatasetSql(java.lang.String tablename,
                       java.lang.String columns,
                       java.lang.String from)
                       throws PLException
Liefert einen flachen Dataset auf Basis eines beliebigen SQL-Statements.

Parameters:
tablename - Tabelle zu den Columns
columns - Spaltennamen mit Komma getrennt
from - beliebige Bedingung
Returns:
Throws:
PLException

getDatasetSql

JDataSet getDatasetSql(java.lang.String datasetname,
                       java.lang.String sql)
                       throws PLException
Liefert einen flachen Dataset auf Basis eines beliebigen SQL-Statements.

Achtung!
Bei Sybase müssen die angebenen Column-Namen eindeutig sein!

Parameters:
datasetname - ( = TableName)
sql - "SELECT a,b FROM c,d WHERE ... ORDER BY ...
Returns:
Throws:
PLException

getDatasetSql

JDataSet getDatasetSql(java.lang.String datasetname,
                       java.lang.String sql,
                       int limit)
                       throws PLException
Parameters:
datasetname -
sql -
limit - Maximale Größe des ResultSet vordefinieren
Returns:
Throws:
PLException

getDatasetSql

JDataSet getDatasetSql(java.lang.String datasetname,
                       java.lang.String sql,
                       ParameterList list)
                       throws PLException
Liefert einen flachen Dataset auf Basis eines beliebigen SQL-Statements.

Achtung!
Bei Sybase müssen die angebenen Column-Namen eindeutig sein!

Parameters:
datasetname - ( = TableName)
sql -
list -
Returns:
Throws:
PLException

getNamedStatement

Database.NamedStatement getNamedStatement(java.lang.String name)
Liefert ein benanntes Statement aus PLConfix.xml

Parameters:
name -
Returns:

getDatasetStatement

JDataSet getDatasetStatement(Database.NamedStatement nst,
                             ParameterList list)
                             throws PLException
Liefert einen DataSet unter Angabe eines benannten Statements.

Hinweis:
Das NameStatement kann auch aus einem abweichenden PL stammen

Parameters:
nst -
list -
Returns:
Throws:
PLException

getDatasetStatement

JDataSet getDatasetStatement(java.lang.String name)
                             throws PLException
Liefert einen DataSet unter Angabe des Namens eines benannten Statements.

Parameters:
name -
Returns:
Throws:
PLException

getDatasetStatement

JDataSet getDatasetStatement(java.lang.String name,
                             ParameterList list)
                             throws PLException
Liefert einen DataSet unter Angabe des Namens eines benannten Statements.

Parameters:
name -
list - Argumentliste für dieses Statement
Returns:
Throws:
PLException

getDataRowIteratorStatement

DataRowIterator getDataRowIteratorStatement(java.lang.String statementName,
                                            ParameterList list)
                                            throws PLException
Parameters:
statementName - Der Name eines benannten Statements
list - ParameterList oder null, wenn ohne Parameter
Returns:
Throws:
PLException
See Also:
#getDataRowIterator(String, String, ParameterList)

getDataRowIterator

DataRowIterator getDataRowIterator(java.lang.String datasetName,
                                   java.lang.String tablename,
                                   java.lang.String sql,
                                   ParameterList list)
                                   throws PLException
Während 'normalerweise' ein DataSet vom Persistenz-Layer immer fertig aufbereitet und komplett mit allen Daten übergeben wird, ist dieses Vorgehen bei großen Datenmengen nicht angebracht, nicht nur, daß das zu lange dauert, sondern weil auch ein OutOfMemory droht.

Der RowIterator schafft dort Abhilfe.
Es wird ein DataRowIterator geliefert unter Angabe von:

Parameters:
datasetName - Namens des DataSet für den RowIterator
tablename - Name der RootTable des Dataset
sql - SELECT-Statement
list - ParameterListe (darf auch null sein)
Returns:
Den RowIterator mit den gewünschten Daten.
Throws:
PLException

getEmptyDataset

JDataSet getEmptyDataset(java.lang.String datasetname)
Liefert einen Dataset ohne Werte aber mit den Metadaten. Wird bei der Erstellung eines neuen Datensatzes benötigt.

Parameters:
datasetname - Der gewünschte Dataset
Returns:
JDataSet
Throws:
PLException

getOID

long getOID()
            throws PLException
Liefert einen neuen eindeutigen Schlüssel für den Client.

Returns:
long
Throws:
PLException

getOID

long getOID(java.lang.String sequenceName)
            throws PLException
Liefert einen neuen eindeutigen Key aus der angegebenen Sequence. Wirft eine Exception, wenn Sequence fehlt.

Parameters:
sequenceName -
Returns:
Throws:
PLException

executeSql

int executeSql(java.lang.String sqlCommand)
               throws PLException
Führt ein beliebiges SQL-Command aus (Update, Insert, Delete). Um beliebige Daten einzulesen siehe:

Parameters:
sqlCommand -
Returns:
Anzahl geänderter Datensätze oder 0
Throws:
PLException
See Also:
getDatasetSql(java.lang.String, java.lang.String, java.lang.String)

executeSql

int executeSql(java.lang.String sqlCommand,
               ParameterList parameters)
               throws PLException
Führt ein beliebiges SQL-Command aus (Update, Insert, Delete). Um beliebige Daten einzulesen siehe:

Parameters:
sqlCommand - SQL-Befehl
parameters - Parameter für PreparedStatement
Returns:
Anzahl geänderter Datensätze oder 0
Throws:
PLException
See Also:
getDatasetSql(java.lang.String, java.lang.String, java.lang.String)

executeSqlPara

int executeSqlPara(java.lang.String sqlCommand,
                   java.util.Vector<java.lang.Object> parameter)
                   throws PLException
Führt ein beliebiges SQL-Statement aus, wobei die Parameter für dieses Statement in einem Vector übergeben werden.

Beispiel:

 String sql = "INSERT INTO MyTable (DateCreated) VALUES (?)";
 Vector v = new Vector();
 v.add(new Date());
 int cnt = pl.executeSqlPara(sql, v);
 

Parameters:
sqlCommand -
parameter -
Returns:
Anzahl geänderter Datensätze oder 0
Throws:
PLException

executeStatement

int executeStatement(java.lang.String name)
                     throws PLException
Führt ein benanntes Statement (UPDATE, INSERT, DELETE) aus.

Parameters:
name - Statement-Name
Returns:
Anzahl geänderter Datensätze oder 0
Throws:
PLException

executeStatement

int executeStatement(java.lang.String name,
                     ParameterList parameters)
                     throws PLException
Führt ein benanntes Statement (UPDATE, INSERT, DELETE) aus.

Parameters:
name - name Statement-Name
parameters - Paramter für das Statement
Returns:
Anzahl geänderter Datensätze oder 0
Throws:
PLException

executeBatchStatement

int executeBatchStatement(java.lang.String name)
                          throws PLException
Führt ein Batch-Statement aus.

Batch-Statements sind eine Menge von NamedStatements, die nacheinander als Batch ausgeführt werden.

Parameters:
name -
Returns:
Anzahl geänderter Datensätze oder 0
Throws:
PLException

executeBatchStatement

int executeBatchStatement(java.lang.String name,
                          ParameterList list)
                          throws PLException
Führt ein Batch-Statement aus.

Batch-Statements sind eine Menge von NamedStatements, die nacheinander als Batch ausgeführt werden.

Parameters:
name -
list - Eine Liste von Parametern für die Menge aller Parameter, die für die verschiedenen Statements insgesamt benötigt werden.
Returns:
Anzahl geänderter Datensätze oder 0
Throws:
PLException

shutdown

void shutdown()
              throws PLException
Deprecated. 

Die Connection zur Datenbank wird geschlossen.

Throws:
PLException

getRequest

Request getRequest(java.lang.String datasetName)
Liefert einen Request zu dem angegebenen Namen. Ist der Request noch nicht vorhanden, wird er erzeugt und in den Cache von Requests geschrieben.

Parameters:
datasetName -
Returns:

getDatabaseMetaData

java.lang.String getDatabaseMetaData()
Liefert die MetaDaten der CurrentDatabase.

Returns:

getDatabaseMetaDataDoc

electric.xml.Document getDatabaseMetaDataDoc()

getMetaDataSet

JDataSet getMetaDataSet()

getPLMetaData

java.lang.String getPLMetaData()
Liefert alle Informationen zum Persistenz-Layer als XML-Document.

Returns:
ein XML-Dokument als String

addRequest

Request addRequest(JDataRow metaDataRow)
                   throws PLException
Erzeugt einen Request aus Metadaten

Parameters:
metadataRow -
Returns:
Throws:
PLException
See Also:
Request.getMetaDataRow()

getDatasetNames

java.util.ArrayList<java.lang.String> getDatasetNames()
Liefert die Menge der definierten Datenbank-Zugriffe.

Returns:

pingDatabase

java.lang.String pingDatabase()
                              throws PLException
Führt das "Ping"-Statement der Datenbank aus, wie in PLConfig unter definiert.

Returns:
Liefert "pong" wenn alles OK, "No PingStatement defined" wenn in PLConfig keine PingStatement definiert ist.
Throws:
PLException

getDateFormat

java.text.SimpleDateFormat getDateFormat()
Liefert das DateFormat aus PLConfig.xml

Returns:

getTimeFormat

java.text.SimpleDateFormat getTimeFormat()

getTimestampFormat

java.text.SimpleDateFormat getTimestampFormat()

getTodayString

java.lang.String getTodayString()
Liefert das heutige Datum im aus PLConfig.xml.

Achtung!
Da der PersistenzLayer üblicherweise auf einem Server läuft, kann ein Client auf diese Art aktuelle Angaben über Datum und Uhrzeit des Servers ermitteln. Dieses ist in der Regel besser als die lokale Zeit des Client zu verwenden.

Returns:

getNowString

java.lang.String getNowString()

getTodayNowString

java.lang.String getTodayNowString()

setDebug

void setDebug(boolean b)
Setzt den Debug-Modus des Persistenzlayers.

Parameters:
b -

isDebug

boolean isDebug()
Liefert den Debug-Modus

Returns:

reset

void reset()
           throws PLException
Setzt den Persistenzlayer zurück.

Es wird der Cache der PreparedStatements gelöscht.

Throws:
PLException

startTransaction

void startTransaction(java.lang.String transName)
                      throws PLException
Startet eine Transaktion mit dem angegebenen Namen. Bei geschachtelten Transaktionen müssen die Namen eindeutig sein.

Parameters:
transName -
Throws:
PLException

commitTransaction

boolean commitTransaction(java.lang.String transName)
                          throws PLException
Beendet die Transaktion mit dem angegebenen Namen, die zuvor mit startTransaktion gestartet wurde.

Bei Angabe eines falschen Transaktionsnamens wird eine Exception geworfen.
Bei geschachtelten Transaktion wird dann eine Exception geworfen, wenn zuvor ein Rollback ausgeführt wurde.

Parameters:
transName -
Throws:
PLException

testCommit

boolean testCommit()
                   throws PLException
Überpüft, ob eine Transaktion mit commitTransaktion(name) beendet werden kann. Voraussetzung ist:

Returns:
Throws:
PLException

rollbackTransaction

boolean rollbackTransaction(java.lang.String transName)
                            throws PLException
Rollback der zuvor gestarteten Transaktion.

Parameters:
transName -
Throws:
PLException

importJournal

int importJournal(java.util.List<electric.xml.Document> transaction)
                  throws PLException
Throws:
PLException

getNumActive

int getNumActive()

getNumIdle

int getNumIdle()

getMaxActive

int getMaxActive()
Returns:

getMaxIdle

int getMaxIdle()
Returns:

getMinIdle

int getMinIdle()
Returns:

getConnectionTimeOut

long getConnectionTimeOut()