|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectcom.sibvisions.rad.persist.AbstractStorage
com.sibvisions.rad.persist.AbstractCachedStorage
com.sibvisions.rad.persist.jdbc.DBStorage
public class DBStorage
The DBStorage
is a IStorage for SQL database specific features.
The DBStorage allows to influence the creation of the SELECT statement to get the data.
The following template shows how the SELECT will be constructed out of the specified properties.
SELECT getBeforeQueryColumns() getQueryColumns()
FROM getFromClause()
WHERE getFilter()
AND getMasterReference()
AND getWhereClause()
getAfterWhereClause()
ORDER BY getSort()
Example:
SELECT DISTINCT // ++ comment, optimizer hints
a.COL1 C, b.COL2 D, a.FK_ID FK_ID, ...
FROM TABLE1 a,
TABLE2 b,
...
WHERE C LIKE 'a%' AND D IS NOT NULL ... // getFilter().getSQL
AND FK_ID = 23 // getMasterReference() get all detail rows to a
specific master row in an other DataBook
AND a.ID = b.FK_ID ... // getLastWhereCondition() * GROUP BY C, D // getAfterWhereClause()
ORDER BY C DESC // getSort()
IStorage
,
ColumnMetaData
,
RemoteDataBook
,
DBAccess
Constructor Summary | |
---|---|
DBStorage()
Constructs a DBStorage . |
Method Summary | |
---|---|
void |
close()
It close the DBStorage. |
protected void |
createAutomaticLinkReference(ServerMetaData pMetaData,
String[] pColumns,
AbstractStorage pDBStorage,
String[] pReferenceColumns)
Creates and sets a new StorageReferenceDefinition with the specified DBStorage and
columns and reference columns on all pColumns . |
void |
createAutomaticLinkReference(String[] pColumns,
DBStorage pDBStorage,
String[] pReferenceColumns)
Creates and sets a new StorageReferenceDefinition with the specified DBStorage and
columns and reference columns on all pColumns . |
void |
createAutomaticLinkReference(String[] pColumns,
String pFromClause,
String[] pReferenceColumns)
Creates and sets a new StorageReferenceDefinition with the specified FromClause and
columns and reference columns on all pColumns . |
protected DBStorage |
createAutomaticLinkStorage(String pFrom)
Creates a new DBStorage which is configured for automatic link cell editors. |
protected Object |
createCheckSum(Object... pObjects)
Creates a MD5 checksum with given objects. |
void |
executeDelete(Object[] pDeleteDataRow)
This method has to be implemented in the Storage implementation and should have the functionality of the delete method. |
List<Object[]> |
executeFetch(ICondition pFilter,
SortDefinition pSort,
int pFromRow,
int pMinimumRowCount)
This method has to be implemented in the Storage implementation and should have the functionality of the fetch method. |
MetaData |
executeGetMetaData()
This method has to be implemented in the Storage implementation and should have the functionality of the getMetaData method. |
Object[] |
executeInsert(Object[] pDataRow)
This method has to be implemented in the Storage implementation and should have the functionality of the insert method. |
Object[] |
executeRefetchRow(Object[] pDataRow)
This method has to be implemented in the Storage implementation and should have the functionality of the refetchRow method. |
Object[] |
executeUpdate(Object[] pOldDataRow,
Object[] pNewDataRow)
This method has to be implemented in the Storage implementation and should have the functionality of the update method. |
String |
getAfterWhereClause()
Returns the string to place in the SELECT statement after the WHERE clause and before the ORDER BY clause. |
String |
getBeforeQueryColumns()
Returns the string to place in the SELECT statement between the SELECT and the first query column. |
String[] |
getColumnNames()
Gets an array of column names as defined in the metadata. |
IDBAccess |
getDBAccess()
Returns the IDBAccess of this DBStorage . |
SortDefinition |
getDefaultSort()
Returns the default sort. |
int |
getEstimatedRowCount(ICondition pFilter)
Returns the number of rows in this AbstractStorage from the storage. |
String |
getFromClause()
Returns the query tables to use in the SELECT statement to get the data from the storage. |
MetaData |
getMetaData(String pGroup,
String pName)
Returns the meta data for this AbstractStorage from the storage as MetaData and places
the MetaData to the cache with a group name and meta data name. |
String[] |
getQueryColumns()
Returns the query columns of the SELECT statement. |
ICondition |
getRestrictCondition()
Returns the restrict condition. |
Map<String,IStorage> |
getSubStorages()
Gets all known sub storages as key / value pair. |
String |
getWhereClause()
Returns the string to place in the SELECT statement after the last WHERE condition from the Filter or MasterReference (Master-Detail Condition). |
String[] |
getWritebackColumns()
Returns the list of write back columns to use in the INSERT, UPDATE statements. |
String |
getWritebackTable()
Returns the WritebackTable, which is used for the INSERT, UPDATE, DELETE calls. |
protected String |
getWritebackTableCatalog()
Gets the catalog name of the writeback table. |
protected String |
getWritebackTableSchema()
Gets the schema name of the writeback table. |
protected boolean |
hasLinkReference(ServerMetaData pMetaData,
String pColumnName)
Gets whether a column has a link reference set. |
boolean |
hasLinkReference(String pColumnName)
Gets whether a column has a link reference set. |
boolean |
isAllowedValues()
Returns the allowed value detection mode. |
boolean |
isAutoLinkReference()
Returns if the automatic LinkReference mode is on or off. |
boolean |
isDefaultAllowedValues()
Returns the default allowed value detection mode. |
static boolean |
isDefaultAutoLinkReference()
Returns the default automatic LinkReference mode. |
static boolean |
isDefaultDefaultValue()
Returns the default - default value detection mode. |
boolean |
isDefaultValue()
Returns the default value detection mode. |
boolean |
isOpen()
Returns if the DBStorage is open. |
boolean |
isRefetch()
Returns if this DBStorage refetchs after insert and update. |
void |
open()
Opens the DBStorage and checks if the DBAssess is ! |
protected void |
openInternal(boolean pUseRepresentationColumnsAsQueryColumns)
Opens the DBStorage and checks if the DBAccess is ! |
protected Object[] |
refetchRow(Object[] pDataRow,
boolean pLock)
Refetch and optional locks the specified DataRow via PK. |
protected void |
refreshMetaData()
Refreshs the MetaData with initial settings. |
void |
removeLinkReference(String pColumnName)
Removes the link reference for an server side Dropdown list (automatic linked celleditor). |
void |
setAfterWhereClause(String pAfterWhereClause)
Sets the string to place in the SELECT statement after the WHERE clause and before the ORDER BY clause. |
void |
setAllowedValues(boolean pAllowedValues)
Sets the allowed value detection en- or disabled. |
void |
setAutoLinkReference(boolean pAutoLinkReference)
Sets if the automatic link reference detection is en- or disabled. |
void |
setBeforeQueryColumns(String pBeforeQueryColumns)
Sets the string to place in the SELECT statement between the SELECT and the first query column. |
void |
setDBAccess(IDBAccess pDBAccess)
Set the IDBAccess of this DBStorage . |
static void |
setDefaultAllowedValues(boolean pAllowedValues)
Sets the default allowed value detection en- or disabled. |
static void |
setDefaultAutoLinkReference(boolean pDefaultAutoLinkReference)
Sets the default automatic link reference detection mode. |
static void |
setDefaultDefaultValue(boolean pDefaultValue)
Sets the default - default value detection en- or disabled. |
void |
setDefaultSort(SortDefinition pDefaultSort)
Sets the default sort. |
void |
setDefaultValue(boolean pDefaultValue)
Sets the default value detection en- or disabled. |
void |
setFromClause(String pFromClause)
Sets the query tables to use in the SELECT statement to get the data from the storage. |
void |
setQueryColumns(String[] pQueryColumns)
Sets the query columns of the SELECT statement. |
void |
setRefetch(boolean pRefetch)
Sets if this DBStorage refetchs after insert and update. |
void |
setRestrictCondition(ICondition pRestrictCondition)
Sets the restrict condition. |
void |
setWhereClause(String pWhereClause)
Sets the string to place in the SELECT statement after the last WHERE condition from the Filter or MasterReference (Master-Detail Condition). |
void |
setWritebackColumns(String[] pWritebackColumns)
Sets the list of write back columns to use in the INSERT, UPDATE statements. |
void |
setWritebackTable(String pWritebackTable)
Sets the WritebackTable, which is used for the INSERT, UPDATE, DELETE calls. |
String |
toString()
|
void |
writeCSV(OutputStream pOutputStream,
String[] pColumnNames,
String[] pLabels,
ICondition pFilter,
SortDefinition pSort,
String pSeparator)
Write the current storage with the specified filter and sort into the given output stream as CSV Format. |
Methods inherited from class com.sibvisions.rad.persist.AbstractCachedStorage |
---|
clearMetaData, clearMetaData, getMetaData, getMetaDataCacheOption, getMetaDataFromCache, getMetaDataFromCache, isGlobalMetaDataCacheEnabled, isMetaDataCacheEnabled, putMetaDataToCache, removeMetaData, setGlobalMetaDataCacheEnabled, setMetaDataCacheOption |
Methods inherited from class com.sibvisions.rad.persist.AbstractStorage |
---|
createBean, createBeanType, createCSV, createCSV, createCSV, createEmptyBean, createPOJO, createPOJO, debug, delete, delete, error, eventAfterDelete, eventAfterInsert, eventAfterUpdate, eventBeforeDelete, eventBeforeInsert, eventBeforeUpdate, eventCalculateRow, executeDeleteAsBean, executeFetchAsBean, executeInsertAsBean, executeRefetchRowAsBean, executeUpdateAsBean, fetch, fetch, fetch, fetchBean, fetchBean, getAndInitBeanType, getMetaData, getName, info, insert, insert, refetch, refetchRow, setName, setPropertyNameForColumn, update, update, updateBean |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Methods inherited from interface javax.rad.persist.IStorage |
---|
delete, fetch, getMetaData, insert, refetchRow, update |
Constructor Detail |
---|
public DBStorage()
DBStorage
.
Method Detail |
---|
public void writeCSV(OutputStream pOutputStream, String[] pColumnNames, String[] pLabels, ICondition pFilter, SortDefinition pSort, String pSeparator) throws Exception
writeCSV
in class AbstractStorage
pOutputStream
- the output stream to use for the CSV streampColumnNames
- the column names to include in the exportpLabels
- the labels to show as header in the exportpFilter
- the conditionpSort
- the sort definitionpSeparator
- the column separator
Exception
- if the CSV output couldn't written to streampublic MetaData executeGetMetaData() throws DataSourceException
executeGetMetaData
in class AbstractStorage
MetaData
DataSourceException
- if an Exception
occur during getting the meta data from the storageIStorage.getMetaData()
public int getEstimatedRowCount(ICondition pFilter) throws DataSourceException
ICondition
to count the rows.
pFilter
- the ICondition
to use.
DataSourceException
- if an Exception
occur during interacting with the storage.public List<Object[]> executeFetch(ICondition pFilter, SortDefinition pSort, int pFromRow, int pMinimumRowCount) throws DataSourceException
executeFetch
in class AbstractStorage
pFilter
- the ICondition
to use.pSort
- the SortDefinition
to use.pFromRow
- the from row index to request from storage.pMinimumRowCount
- the minimum row count to request, beginning from the pFromRow.
List[Object[]]
.
DataSourceException
- if an Exception
occur during interacting with the storage.IStorage.fetch(ICondition, SortDefinition, int, int)
public Object[] executeRefetchRow(Object[] pDataRow) throws DataSourceException
executeRefetchRow
in class AbstractStorage
pDataRow
- the specified row as Object[]
.
Object[]
.
DataSourceException
- if an Exception
occur during interacting with the storage.IStorage.refetchRow(Object[])
public Object[] executeInsert(Object[] pDataRow) throws DataSourceException
executeInsert
in class AbstractStorage
pDataRow
- the new row as Object[]
to insert.
DataSourceException
- if an Exception
occur during insert the row to the storageIStorage.insert(Object[])
public Object[] executeUpdate(Object[] pOldDataRow, Object[] pNewDataRow) throws DataSourceException
executeUpdate
in class AbstractStorage
pOldDataRow
- the old row as Object[]
pNewDataRow
- the new row as Object[]
to update
Object[]
.
DataSourceException
- if an Exception
occur during updating the row.IStorage.update(Object[], Object[])
public void executeDelete(Object[] pDeleteDataRow) throws DataSourceException
executeDelete
in class AbstractStorage
pDeleteDataRow
- the row as Object[]
to delete.
DataSourceException
- if an Exception
occur during deleting the row or
if the storage isn't opened or the PrimaryKey is wrong and more/less
then one row is deleted.IStorage.delete(Object[])
public String toString()
toString
in class Object
public MetaData getMetaData(String pGroup, String pName) throws DataSourceException
MetaData
and places
the MetaData to the cache with a group name and meta data name.
getMetaData
in interface ICachedStorage
getMetaData
in class AbstractCachedStorage
pGroup
- the cache group namepName
- the name for the meta data in the cache group
MetaData
.
DataSourceException
- if an Exception
occur during getting the meta data from the storagepublic void open() throws DataSourceException
DataSourceException
- if the DBAccess is null.protected void openInternal(boolean pUseRepresentationColumnsAsQueryColumns) throws DataSourceException
pUseRepresentationColumnsAsQueryColumns
- yes
if the QueryColumns are set with
all representation columns including the Primary Key columns.
DataSourceException
- if the DBAccess is null.protected void refreshMetaData() throws DataSourceException
DataSourceException
- if the DBAccess is null.public void createAutomaticLinkReference(String[] pColumns, String pFromClause, String[] pReferenceColumns) throws ModelException
StorageReferenceDefinition
with the specified FromClause and
columns and reference columns on all pColumns
.
e.g. its used to make an automatic linked celleditor from a custom written view and set it on all pColumns
.
pColumns
- the columns to use.pFromClause
- the FromClause. e.g. VIEW name.pReferenceColumns
- the reference columns to use.
ModelException
- if the StorageReferenceDefinition
couldn't created.public void createAutomaticLinkReference(String[] pColumns, DBStorage pDBStorage, String[] pReferenceColumns) throws ModelException
StorageReferenceDefinition
with the specified DBStorage
and
columns and reference columns on all pColumns
.
pColumns
- the columns to use.pDBStorage
- the DBStorage
to use.pReferenceColumns
- the reference columns to use.
ModelException
- if the StorageReferenceDefinition
couldn't created.protected void createAutomaticLinkReference(ServerMetaData pMetaData, String[] pColumns, AbstractStorage pDBStorage, String[] pReferenceColumns) throws ModelException
StorageReferenceDefinition
with the specified DBStorage
and
columns and reference columns on all pColumns
.
pMetaData
- the metadata to use.pColumns
- the columns to use.pDBStorage
- the DBStorage
to use.pReferenceColumns
- the reference columns to use.
ModelException
- if the StorageReferenceDefinition
couldn't created.public void removeLinkReference(String pColumnName) throws ModelException
pColumnName
- the column name to use, where the link reference will be removed
ModelException
- if the column doesn't exist.public boolean hasLinkReference(String pColumnName) throws ModelException
pColumnName
- the column name
true
if a link reference is set, false
otherwise
ModelException
- if the column doesn't exist.protected boolean hasLinkReference(ServerMetaData pMetaData, String pColumnName) throws ModelException
pMetaData
- the metadata to usepColumnName
- the column name
true
if a link reference is set, false
otherwise
ModelException
- if the column doesn't exist.public boolean isOpen()
public void close()
public void setDBAccess(IDBAccess pDBAccess)
IDBAccess
of this DBStorage
.
pDBAccess
- the IDBAccess
of this DBStorage
.public IDBAccess getDBAccess()
IDBAccess
of this DBStorage
.
IDBAccess
of this DBStorage
.public String getFromClause()
public void setFromClause(String pFromClause)
pFromClause
- the queryTables to set.public String[] getQueryColumns()
public void setQueryColumns(String[] pQueryColumns)
pQueryColumns
- the queryColumns to setpublic String getBeforeQueryColumns()
public void setBeforeQueryColumns(String pBeforeQueryColumns)
pBeforeQueryColumns
- the beforeQueryColumns to setpublic String getWhereClause()
public void setWhereClause(String pWhereClause)
pWhereClause
- the last Where Condition to setpublic String getAfterWhereClause()
public void setAfterWhereClause(String pAfterWhereClause)
pAfterWhereClause
- the afterWhereClause to setpublic String[] getWritebackColumns()
public void setWritebackColumns(String[] pWritebackColumns)
pWritebackColumns
- the pWritebackColumns to setpublic String getWritebackTable()
public void setWritebackTable(String pWritebackTable)
pWritebackTable
- the pWritebackTable to setpublic SortDefinition getDefaultSort()
public void setDefaultSort(SortDefinition pDefaultSort)
pDefaultSort
- the default sort.public ICondition getRestrictCondition()
public void setRestrictCondition(ICondition pRestrictCondition)
pRestrictCondition
- the restrict condition.public boolean isRefetch()
public void setRefetch(boolean pRefetch)
pRefetch
- true
if this DBStorage refetchs after insert and update.public void setAutoLinkReference(boolean pAutoLinkReference)
pAutoLinkReference
- true if the automatic LinkReference mode is on, false
to disable
auto link reference modepublic boolean isAutoLinkReference()
true
if the automatic LinkReference mode is on, otherwise false
setAutoLinkReference(boolean)
public static void setDefaultAutoLinkReference(boolean pDefaultAutoLinkReference)
pDefaultAutoLinkReference
- the default automatic LinkReference mode to use.public static boolean isDefaultAutoLinkReference()
setDefaultAutoLinkReference(boolean)
public void setDefaultValue(boolean pDefaultValue)
pDefaultValue
- true
to enable the default value detectionpublic boolean isDefaultValue()
true
if the default value detection is enabled, false
otherwisesetDefaultValue(boolean)
public static void setDefaultDefaultValue(boolean pDefaultValue)
pDefaultValue
- true
to enable the default - default value detectionpublic static boolean isDefaultDefaultValue()
true
if the default - default value detection is enabled, false
otherwisesetDefaultDefaultValue(boolean)
public void setAllowedValues(boolean pAllowedValues)
pAllowedValues
- true
to enable the allowed value detection, false
otherwisepublic boolean isAllowedValues()
true
if the allowed value detection is enabled, false
otherwisesetAllowedValues(boolean)
public static void setDefaultAllowedValues(boolean pAllowedValues)
pAllowedValues
- true
to enable the default allowed value detection, false
otherwisepublic boolean isDefaultAllowedValues()
true
if the default allowed value detection is enabled, false
otherwisesetDefaultAllowedValues(boolean)
protected String getWritebackTableCatalog()
null
if no writeback table is setprotected String getWritebackTableSchema()
null
if no writeback table is setprotected Object[] refetchRow(Object[] pDataRow, boolean pLock) throws DataSourceException
pDataRow
- the DataRow to refetchpLock
- true if the row is locked before.
DataSourceException
- if the refetch failspublic String[] getColumnNames()
AbstractStorage.getMetaData()
public Map<String,IStorage> getSubStorages()
null
if no substorages are
knownprotected DBStorage createAutomaticLinkStorage(String pFrom) throws DataSourceException
DBStorage
which is configured for automatic link cell editors. The auto link
reference feature is disabled for this storage.
pFrom
- The from clause
DataSourceException
- if the from clause causes errors or the metadata are not availableprotected Object createCheckSum(Object... pObjects)
pObjects
- the objects for the checksum calculation
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |