|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectcom.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. |
int |
countRows(ICondition pFilter)
Returns the number of rows in this AbstractStorage from the storage. |
IFileHandle |
createCSVFile(ColumnMetaData[] pClientColumnMetaData,
ICondition pFilter,
SortDefinition pSort)
Write the current DBStorage with the specified filter and sort to the export.csv file in CSV format and returns the file handle. |
IFileHandle |
createCSVFile(String pFilename,
ColumnMetaData[] pClientColumnMetaData,
ICondition pFilter,
SortDefinition pSort)
Write the current DBStorage with the specified filter and sort to the export.csv file in CSV format and returns the file handle. |
IBean |
createEmptyBean()
Creates a bean with the column names as allowed properties. |
void |
delete(Object[] pDeleteDataRow)
Deletes the specified row from the storage. |
void |
deleteBean(IBean pDeleteDataRow)
Deletes the specified row from the Storage. |
List<Object[]> |
fetch(ICondition pFilter,
SortDefinition pSort,
int pFromRow,
int pMinimumRowCount)
Returns the requested rows as List[Object[]]. |
IBean |
fetchBean(ICondition pFilter)
Returns the requested row as single IBean. |
List<IBean> |
fetchBean(ICondition pFilter,
SortDefinition pSort,
int pFromRow,
int pMinimumRowCount)
Returns the requested rows as list of IBean. |
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. |
String |
getFromClause()
Returns the query tables to use in the SELECT statement to get the data from the storage. |
MetaData |
getMetaData()
Returns the meta data for this AbstractStorage from the storage as MetaData. |
static Hashtable<String,MetaData> |
getMetaData(String pLifeCycleName)
Gets the cached column meta data for a specific life-cycle object. |
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. |
Object[] |
insert(Object[] pDataRow)
Returns the newly inserted row for this IStorage. |
IBean |
insertBean(IBean pDataRow)
Returns the newly inserted row for this Storage. |
boolean |
isAutoLinkReference()
Returns if the automatic LinkReference mode is on or off. |
static boolean |
isDefaultAutoLinkReference()
Returns the default automatic LinkReference 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 StorageDataSource is ! |
protected void |
openInternal(boolean pUseRepresentationColumnsAsQueryColumns)
Opens the DBStorage and checks if the StorageDataSource is ! |
Object[] |
refetchRow(Object[] pDataRow)
It refetchs the specified row and returns it as Object[] from the storage. |
protected Object[] |
refetchRow(Object[] pDataRow,
boolean pLock)
Refetch and optional locks the specified DataRow via PK. |
IBean |
refetchRowBean(IBean pDataRow)
It refetchs the specified row and returns it as IBean from the Storage. |
void |
setAfterWhereClause(String pAfterWhereClause)
Sets the string to place in the SELECT statement after the WHERE clause and before the ORDER BY clause. |
void |
setAutoLinkReference(boolean pAutoLinkReference)
Sets if the automatic LinkReference mode is on/off or default. |
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 |
setDefaultAutoLinkReference(boolean pDefaultAutoLinkReference)
Sets the default automatic LinkReference mode. |
void |
setDefaultSort(SortDefinition pDefaultSort)
Sets the default sort. |
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()
|
Object[] |
update(Object[] pOldDataRow,
Object[] pNewDataRow)
Return the updated row as Object[]. |
IBean |
updateBean(IBean pNewDataRow)
Updates a row with provided values and returns the updated row as IBean. |
void |
writeCSV(OutputStream pOutputStream,
ColumnMetaData[] pClientColumnMetaData,
ICondition pFilter,
SortDefinition pSort)
Write the current DBStorage with the specified filter and sort into the given output stream as CSV Format. |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
| Constructor Detail |
|---|
public DBStorage()
DBStorage.
| Method Detail |
|---|
public static boolean isDefaultAutoLinkReference()
public static void setDefaultAutoLinkReference(boolean pDefaultAutoLinkReference)
pDefaultAutoLinkReference - the default automatic LinkReference mode to use.
public MetaData getMetaData()
throws DataSourceException
MetaData.
getMetaData in interface IStorageMetaData.
DataSourceException - if an Exception occur during getting the meta data from the storage
public int countRows(ICondition pFilter)
throws DataSourceException
ICondition to count the rows.
countRows in interface IStoragepFilter - the ICondition to use.
DataSourceException - if an Exception occur during interacting with the storage.
public List<Object[]> fetch(ICondition pFilter,
SortDefinition pSort,
int pFromRow,
int pMinimumRowCount)
throws DataSourceException
List[Object[]]. Optimization can also return
more then the minimum row count. If possible all in a certain time.
fetch in interface IStoragepFilter - the ICondition to usepSort - the SortDefinition to usepFromRow - the from row index to request from storagepMinimumRowCount - the minimum row count to request, beginning from the pFromRow.
List[Object[]].
DataSourceException - if an Exception occur during interacting with the storage.
public Object[] refetchRow(Object[] pDataRow)
throws DataSourceException
Object[] from the storage.
refetchRow in interface IStoragepDataRow - the specified row as Object[] to lock
Object[] from the storage.
DataSourceException - if an Exception occur during interacting with the storage.
public Object[] insert(Object[] pDataRow)
throws DataSourceException
insert in interface IStoragepDataRow - the new row as Object[] to insert.
DataSourceException - if an Exception occur during insert the row
to the storage
public Object[] update(Object[] pOldDataRow,
Object[] pNewDataRow)
throws DataSourceException
Object[].
update in interface IStoragepOldDataRow - the old row as Object[]pNewDataRow - the new row as Object[] to update
Object[].
DataSourceException - if an Exception occur during updating the row.
public void delete(Object[] pDeleteDataRow)
throws DataSourceException
delete in interface IStoragepDeleteDataRow - 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 deletedpublic String toString()
toString in class Object
public void open()
throws DataSourceException
DataSourceException - if the StorageDataSource 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 StorageDataSource is null.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 boolean isAutoLinkReference()
trueif the automatic LinkReference mode is on, otherwise falsepublic void setAutoLinkReference(boolean pAutoLinkReference)
pAutoLinkReference - true if the automatic LinkReference mode is on, false to disable
auto link reference mode
public IFileHandle createCSVFile(ColumnMetaData[] pClientColumnMetaData,
ICondition pFilter,
SortDefinition pSort)
throws Exception
SessionContext.
pClientColumnMetaData - the the client column meta data for the column headers of the CSV file.pFilter - the filter to use on the DBStoragepSort - the sort to use
Exception - if the CSV output couldn't written to stream.
public IFileHandle createCSVFile(String pFilename,
ColumnMetaData[] pClientColumnMetaData,
ICondition pFilter,
SortDefinition pSort)
throws Exception
pFilename - the filename to use.pClientColumnMetaData - the the client column meta data for the column headers of the CSV file.pFilter - the filter to use on the DBStoragepSort - the sort to use
Exception - if the CSV output couldn't written to stream.
public void writeCSV(OutputStream pOutputStream,
ColumnMetaData[] pClientColumnMetaData,
ICondition pFilter,
SortDefinition pSort)
throws Exception
pOutputStream - the output stream to use for the CSV stream.pClientColumnMetaData - the column headers for the CSV file.pFilter - the filter to use on the DBStoragepSort - the sort to use
Exception - if the CSV output couldn't written to stream.
protected 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()
getMetaData()
public List<IBean> fetchBean(ICondition pFilter,
SortDefinition pSort,
int pFromRow,
int pMinimumRowCount)
throws DataSourceException
IBean.
pFilter - the ICondition to usepSort - the SortDefinition to usepFromRow - the from row index to request from storagepMinimumRowCount - the minimum row count to request, beginning from the pFromRow.
IBeans.
DataSourceException - if an Exception occur during interacting with the storage.
public IBean fetchBean(ICondition pFilter)
throws DataSourceException
IBean.
pFilter - the ICondition to use
IBeans, or null if no row was found
DataSourceException - if an Exception occur during interacting with the storage or
more than one row were found
public IBean refetchRowBean(IBean pDataRow)
throws DataSourceException
IBean from the Storage.
Before the user starts editing in the GUI, the IDataRow in the storage should be locked for updates.
pDataRow - the specified row as IBean to lock
IBean from the Storage.
DataSourceException - if an Exception occur during interacting with the Storage.
public IBean insertBean(IBean pDataRow)
throws DataSourceException
pDataRow - the new row as IBean to insert.
DataSourceException - if an Exception occur during insert the row
to the storage
public IBean updateBean(IBean pNewDataRow)
throws DataSourceException
IBean.
pNewDataRow - the new row as IBean to update
IBean
DataSourceException - if an Exception occur during updating the row
public void deleteBean(IBean pDeleteDataRow)
throws DataSourceException
pDeleteDataRow - the row as IBean 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 deletedpublic IBean createEmptyBean()
IBean implementationpublic static Hashtable<String,MetaData> getMetaData(String pLifeCycleName)
pLifeCycleName - the name of the life-cycle object
Hashtable with column meta data, mapped with a specific name or
null if there are no cached column meta data for the
pLifeCycleNamepublic Map<String,IStorage> getSubStorages()
null if no substorages are
known
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||