|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectcom.basecmp.core.persistence.impl.SqlTableMetaData
SqlTableMetaData dient im Persistenz-Framework als ein unveränderliches Beschreibungs-Objekt für Datenbank-Tabellen. In einer Instanz von SqlTableMetaData können die folgenden Metadaten gespeichert werden:
SqlTableMetaData-Instanzen teilen sich intern in zwei logische Untertypen auf, die sich über ihre statischen Konstruktoren definieren. Um Instanzen mit dem String-Konstruktor erzeugen zu können, muss eine gleichnamiges Resourcefile existieren. In diesem Resourcefile sind die Metadaten für die angeforderte Tabelle in einer an die SQL-DDL angelehnten Syntax statisch vordefiniert. Sämtliche Persistenz-Beans stützen sich auf diese Instanzart. Instanzen dieser Art werden in ihrer Anzahl auf eine Instanz pro Tabelle begrenzt.
Im Unterschied dazu werden die Metadaten beim ResultSet-Konstruktor direkt per JDBC-Methoden gelesen und intern gespeichert. Der JDCB-Konstruktor wird implizit vom Persistence-Manager benutzt, um für ein beliebiges SQL-Statement (Query) Metadaten erzeugen zu können.
SqlTableMetaData-Instanzen treten grundsätzlich als Partnerobjekte für PersistentRow-Instanzen in Erscheinung. Da die Factory-Methoden protected sind, kann nur das Persistenz-Framework SqlTableMetaData-Instanzen erzeugen. Gleiches gilt für alle anderen Methoden. Die Informationen der lesenden Getter-Methoden werden nur über Delegation anderer Klassen zur Verfügung gestellt. Dadurch wird erreicht, dass Entwickler mit SqlTableMetaData-Instanzen praktisch nie in Berührung kommen und somit die Benutzung des Framework-API vereinfacht.
PersistentRow| Method Summary | |
protected boolean |
containsColumn(java.lang.String columnName)
Liefert true für existierende Spaltennamen, sonst false. |
protected int |
getColumnCount()
Liefert die Anzahl der Spalten zur dargestellten Tabelle. |
protected java.util.Iterator |
getColumnNames()
Liefert alle Spaltennamen zur dargestellten Tabelle als Iterator. |
protected java.lang.String |
getDataType(java.lang.String columnName)
Liefert den vom Persistenz-Framework intern benutzten Datentyp zu einer Tabellenspalte. |
protected java.lang.String[] |
getForeignKeys()
Liefert alle Spaltennamen der definierten Foreign-Keys zur dargestellten Tabelle. |
protected java.lang.Object |
getInitialContent(java.lang.String columnName)
Liefert den Initialwert zu einer Tabellenspalte. |
protected static SqlTableMetaData |
getInstanceForResultSet(java.sql.ResultSet rs)
ResultSet-Konstruktor (JDBC). |
protected static SqlTableMetaData |
getInstanceForTable(java.lang.String tablename)
String-Konstruktor. |
protected java.lang.String[] |
getPrimaryKeys()
Liefert alle Spaltennamen der definierten Primary-Keys zur dargestellten Tabelle. |
protected java.lang.String |
getTableName()
Liefert den Namen der dargestellten Tabelle. |
protected java.lang.String[] |
getUniqueKeys()
Liefert alle Spaltennamen der definierten Unique-Keys zur dargestellten Tabelle. |
protected boolean |
isArray(java.lang.String columnName)
|
protected boolean |
isAssetMode()
Liefert true, wenn die SqlTableMetaData per String-Konstruktor erzeugt wurde. |
protected java.util.Set |
keySet()
|
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Method Detail |
protected boolean containsColumn(java.lang.String columnName)
protected int getColumnCount()
protected java.util.Iterator getColumnNames()
protected java.lang.String getDataType(java.lang.String columnName)
columnName - Name der Tabellenspalteprotected java.lang.String[] getForeignKeys()
java.lang.UnsupportedOperationException - Wird bei jedem Aufruf geworfen!protected java.lang.Object getInitialContent(java.lang.String columnName)
columnName - Name der Tabellenspalte
protected static SqlTableMetaData getInstanceForResultSet(java.sql.ResultSet rs)
throws java.sql.SQLException
rs - Ein JDBC-Resultset
java.sql.SQLException - Wird ggf vom intern benutzen ResultSet-Konstruktor geworfen.protected static SqlTableMetaData getInstanceForTable(java.lang.String tablename)
tablename - Name der Datenbanktabelle
java.lang.IllegalArgumentException - Wird geworfen, wenn das String-Argument null oder leer ist.
java.util.MissingResourceException - Wird geworfen, wenn zum angeforderten Tabellennamen keine
Resoucefile hinterlegt ist.protected java.lang.String[] getPrimaryKeys()
protected java.lang.String getTableName()
protected java.lang.String[] getUniqueKeys()
protected boolean isArray(java.lang.String columnName)
protected boolean isAssetMode()
protected java.util.Set keySet()
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||