|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--org.apache.turbine.om.peer.BasePeer
This is the base class for all Peer classes in the system. Peer classes are responsible for isolating all of the database access for a specific business object. They execute all of the SQL against the database. Over time this class has grown to include utility methods which ease execution of cross-database queries and the implementation of concrete Peers.
Field Summary | |
static java.lang.String |
DEFAULT_MAP_BUILDER
The Turbine default MapBuilder. |
static java.lang.String |
IGNORE_CASE
|
private static java.util.Hashtable |
mapBuilders
Hashtable that contains the cached mapBuilders. |
static java.lang.String |
ORDER_BY
Constant criteria key to reference ORDER BY columns. |
static java.lang.String |
TABLE_NAME
Classes that implement this class should override this value. |
Constructor Summary | |
BasePeer()
|
Method Summary | |
static DBConnection |
beginTransaction(java.lang.String dbName)
Begin a transaction. |
static void |
commitTransaction(DBConnection dbCon)
Commit a transaction. |
static void |
createPreparedStatement(Criteria criteria,
java.lang.StringBuffer queryString,
java.util.List params)
Create a new PreparedStatement. |
static java.lang.String |
createQueryString(Criteria criteria)
Method to create an SQL query based on values in a Criteria. |
static void |
deleteAll(DBConnection dbCon,
java.lang.String table,
java.lang.String column,
int value)
Convenience method that uses straight JDBC to delete multiple rows. |
static void |
deleteAll(java.lang.String table,
java.lang.String column,
int value)
Convenience method that uses straight JDBC to delete multiple rows. |
static void |
doDelete(Criteria criteria)
Method to perform deletes based on values and keys in a Criteria. |
static void |
doDelete(Criteria criteria,
DBConnection dbCon)
Method to perform deletes based on values and keys in a Criteria. |
static ObjectKey |
doInsert(Criteria criteria)
Method to perform inserts based on values and keys in a Criteria. |
static ObjectKey |
doInsert(Criteria criteria,
DBConnection dbCon)
Method to perform inserts based on values and keys in a Criteria. |
static java.util.Vector |
doPSSelect(Criteria criteria)
Do a Prepared Statement select according to the given criteria |
static java.util.Vector |
doPSSelect(Criteria criteria,
DBConnection dbCon)
Performs a SQL select using a PreparedStatement. |
static java.util.Vector |
doSelect(Criteria criteria)
Returns all results. |
static java.util.Vector |
doSelect(Criteria criteria,
DBConnection dbCon)
Returns all results. |
static void |
doUpdate(Criteria updateValues)
Use this method for performing an update of the kind: |
static void |
doUpdate(Criteria selectCriteria,
Criteria updateValues)
Use this method for performing an update of the kind: |
static void |
doUpdate(Criteria selectCriteria,
Criteria updateValues,
DBConnection dbCon)
Use this method for performing an update of the kind: |
static void |
doUpdate(Criteria updateValues,
DBConnection dbCon)
Use this method for performing an update of the kind: |
static java.util.Vector |
executeQuery(java.lang.String queryString)
Utility method which executes a given sql statement. |
static java.util.Vector |
executeQuery(java.lang.String queryString,
boolean singleRecord,
DBConnection dbCon)
Method for performing a SELECT. |
static java.util.Vector |
executeQuery(java.lang.String queryString,
int start,
int numberOfResults,
boolean singleRecord,
DBConnection dbCon)
Method for performing a SELECT. |
static java.util.Vector |
executeQuery(java.lang.String queryString,
int start,
int numberOfResults,
java.lang.String dbName,
boolean singleRecord)
Method for performing a SELECT. |
static java.util.Vector |
executeQuery(java.lang.String queryString,
java.lang.String dbName)
Utility method which executes a given sql statement. |
static java.util.Vector |
executeQuery(java.lang.String queryString,
java.lang.String dbName,
boolean singleRecord)
Method for performing a SELECT. |
static int |
executeStatement(java.lang.String stmt)
Utility method which executes a given sql statement. |
static int |
executeStatement(java.lang.String stmt,
DBConnection dbCon)
Utility method which executes a given sql statement. |
static int |
executeStatement(java.lang.String stmt,
java.lang.String dbName)
Utility method which executes a given sql statement. |
private static java.lang.Exception |
getMalformedColumnNameException(java.lang.String criteriaPhrase,
java.lang.String columnName)
return an Exception with the malformed column name error message. |
static MapBuilder |
getMapBuilder()
This method returns the MapBuilder specified in the TurbineResources.properties file. |
static MapBuilder |
getMapBuilder(java.lang.String name)
This method returns the MapBuilder specified in the name parameter. |
private static ColumnMap |
getPrimaryKey(Criteria criteria)
Helper method which returns the primary key contained in the given Criteria object. |
static java.util.Vector |
getSelectResults(com.workingdogs.village.QueryDataSet qds)
Returns all records in a QueryDataSet as a Vector of Record objects. |
static java.util.Vector |
getSelectResults(com.workingdogs.village.QueryDataSet qds,
boolean singleRecord)
Returns all records in a QueryDataSet as a Vector of Record objects. |
static java.util.Vector |
getSelectResults(com.workingdogs.village.QueryDataSet qds,
int numberOfResults,
boolean singleRecord)
Returns numberOfResults records in a QueryDataSet as a Vector of Record objects. |
static java.util.Vector |
getSelectResults(com.workingdogs.village.QueryDataSet qds,
int start,
int numberOfResults,
boolean singleRecord)
Returns numberOfResults records in a QueryDataSet as a Vector of Record objects. |
protected static void |
handleMultiple(com.workingdogs.village.DataSet ds)
Deprecated. Use the better-named handleMultipleRecords() instead. |
protected static void |
handleMultipleRecords(com.workingdogs.village.DataSet ds)
If the user specified that (s)he only wants to retrieve a single record and multiple records are retrieved, this method is called to handle the situation. |
static byte[] |
hashtableToByteArray(java.util.Hashtable hash)
Converts a hashtable to a byte array for storage/serialization. |
static java.lang.String[] |
initColumnNames(com.workingdogs.village.Column[] columns)
Convenience method to create a String array of column names. |
static java.lang.String[] |
initCriteriaKeys(java.lang.String tableName,
java.lang.String[] columnNames)
Convenience method to create a String array of criteria keys. |
static com.workingdogs.village.Column[] |
initTableColumns(com.workingdogs.village.Schema schema)
Creates a Column array for a table based on its Schema. |
static com.workingdogs.village.Schema |
initTableSchema(java.lang.String tableName)
Sets up a Schema for a table. |
static com.workingdogs.village.Schema |
initTableSchema(java.lang.String tableName,
java.lang.String dbName)
Sets up a Schema for a table. |
private static void |
insertOrUpdateRecord(com.workingdogs.village.Record rec,
java.lang.String tableName,
Criteria criteria)
Grouping of code used in both doInsert() and doUpdate() methods. |
static void |
rollBackTransaction(DBConnection dbCon)
Roll back a transaction in databases that support transactions. |
private static void |
setLimit(Criteria criteria,
DB db,
Query query)
|
Methods inherited from class java.lang.Object |
|
Field Detail |
public static final java.lang.String ORDER_BY
public static final java.lang.String IGNORE_CASE
public static final java.lang.String TABLE_NAME
public static final java.lang.String DEFAULT_MAP_BUILDER
private static java.util.Hashtable mapBuilders
Constructor Detail |
public BasePeer()
Method Detail |
public static byte[] hashtableToByteArray(java.util.Hashtable hash) throws java.lang.Exception
hash
- The Hashtable to convert.Exception,
- a generic exception.public static com.workingdogs.village.Schema initTableSchema(java.lang.String tableName)
tableName
- The name of the table.public static com.workingdogs.village.Schema initTableSchema(java.lang.String tableName, java.lang.String dbName)
tableName
- The propery name for the database in the
Turbineresources file.dbName
- The name of the database.public static com.workingdogs.village.Column[] initTableColumns(com.workingdogs.village.Schema schema)
schema
- A Schema object.public static java.lang.String[] initColumnNames(com.workingdogs.village.Column[] columns)
columns
- A Column[].public static java.lang.String[] initCriteriaKeys(java.lang.String tableName, java.lang.String[] columnNames)
tableName
- Name of table.columnNames
- A String[].public static DBConnection beginTransaction(java.lang.String dbName) throws java.lang.Exception
dbName
- Name of database.Exception,
- a generic exception.public static void commitTransaction(DBConnection dbCon) throws java.lang.Exception
dbCon
- The DBConnection for the transaction.Exception,
- a generic exception.public static void rollBackTransaction(DBConnection dbCon) throws java.lang.Exception
dbCon
- The DBConnection for the transaction.Exception,
- a generic exception.public static void deleteAll(DBConnection dbCon, java.lang.String table, java.lang.String column, int value) throws java.lang.Exception
dbCon
- A DBConnection.table
- The table to delete records from.column
- The column in the where clause.value
- The value of the column.Exception,
- a generic exception.public static void deleteAll(java.lang.String table, java.lang.String column, int value) throws java.lang.Exception
table
- The table to delete records from.column
- The column in the where clause.value
- The value of the column.Exception,
- a generic exception.public static void doDelete(Criteria criteria) throws java.lang.Exception
criteria
- The criteria to use.Exception,
- a generic exception.public static void doDelete(Criteria criteria, DBConnection dbCon) throws java.lang.Exception
criteria
- The criteria to use.dbCon
- A DBConnection.Exception,
- a generic exception.public static ObjectKey doInsert(Criteria criteria) throws java.lang.Exception
If the primary key is auto incremented the data in Criteria will be inserted and the auto increment value will be returned.
If the primary key is included in Criteria then that value will be used to insert the row.
If no primary key is included in Criteria then we will try to figure out the primary key from the database map and insert the row with the next available id using util.db.IDBroker.
If no primary key is defined for the table the values will be inserted as specified in Criteria and -1 will be returned.
criteria
- Object containing values to insert.Exception,
- a generic exception.public static ObjectKey doInsert(Criteria criteria, DBConnection dbCon) throws java.lang.Exception
If the primary key is auto incremented the data in Criteria will be inserted and the auto increment value will be returned.
If the primary key is included in Criteria then that value will be used to insert the row.
If no primary key is included in Criteria then we will try to figure out the primary key from the database map and insert the row with the next available id using util.db.IDBroker.
If no primary key is defined for the table the values will be inserted as specified in Criteria and null will be returned.
criteria
- Object containing values to insert.dbCon
- A DBConnection.Exception,
- a generic exception.private static void insertOrUpdateRecord(com.workingdogs.village.Record rec, java.lang.String tableName, Criteria criteria) throws java.lang.Exception
rec
- A Record.tableName
- Name of table.criteria
- A Criteria.Exception,
- a generic exception.public static java.lang.String createQueryString(Criteria criteria) throws java.lang.Exception
criteria
- A Criteria.java.lang.Exception
- Trouble creating the query string.public static java.util.Vector doSelect(Criteria criteria) throws java.lang.Exception
criteria
- A Criteria.Exception,
- a generic exception.public static java.util.Vector doSelect(Criteria criteria, DBConnection dbCon) throws java.lang.Exception
criteria
- A Criteria.dbCon
- A DBConnection.Exception,
- a generic exception.public static java.util.Vector executeQuery(java.lang.String queryString) throws java.lang.Exception
queryString
- A String with the sql statement to execute.Exception,
- a generic exception.public static java.util.Vector executeQuery(java.lang.String queryString, java.lang.String dbName) throws java.lang.Exception
queryString
- A String with the sql statement to execute.dbName
- The database to connect to.Exception,
- a generic exception.public static java.util.Vector executeQuery(java.lang.String queryString, java.lang.String dbName, boolean singleRecord) throws java.lang.Exception
queryString
- A String with the sql statement to execute.dbName
- The database to connect to.singleRecord
- Whether or not we want to select only a
single record.Exception,
- a generic exception.public static java.util.Vector executeQuery(java.lang.String queryString, boolean singleRecord, DBConnection dbCon) throws java.lang.Exception
queryString
- A String with the sql statement to execute.dbName
- The database to connect to.singleRecord
- Whether or not we want to select only a
single record.dbCon
- A DBConnection.Exception,
- a generic exception.public static java.util.Vector executeQuery(java.lang.String queryString, int start, int numberOfResults, java.lang.String dbName, boolean singleRecord) throws java.lang.Exception
queryString
- A String with the sql statement to execute.start
- The first row to return.numberOfResults
- The number of rows to return.dbName
- The database to connect to.singleRecord
- Whether or not we want to select only a
single record.Exception,
- a generic exception.public static java.util.Vector executeQuery(java.lang.String queryString, int start, int numberOfResults, boolean singleRecord, DBConnection dbCon) throws java.lang.Exception
queryString
- A String with the sql statement to execute.start
- The first row to return.numberOfResults
- The number of rows to return.dbName
- The database to connect to.singleRecord
- Whether or not we want to select only a
single record.dbCon
- A DBConnection.Exception,
- a generic exception.public static java.util.Vector getSelectResults(com.workingdogs.village.QueryDataSet qds) throws java.lang.Exception
qds
- A QueryDataSet.Exception,
- a generic exception.public static java.util.Vector getSelectResults(com.workingdogs.village.QueryDataSet qds, boolean singleRecord) throws java.lang.Exception
qds
- A QueryDataSet.singleRecord
- Whether or not we want to select only a
single record.Exception,
- a generic exception.public static java.util.Vector getSelectResults(com.workingdogs.village.QueryDataSet qds, int numberOfResults, boolean singleRecord) throws java.lang.Exception
qds
- A QueryDataSet.numberOfResults
- The number of results to return.singleRecord
- Whether or not we want to select only a
single record.Exception,
- a generic exception.public static java.util.Vector getSelectResults(com.workingdogs.village.QueryDataSet qds, int start, int numberOfResults, boolean singleRecord) throws java.lang.Exception
qds
- A QueryDataSet.start
- where to start retrieving Records.numberOfResults
- The number of results to return.singleRecord
- Whether or not we want to select only a
single record.Exception,
- a generic exception.private static ColumnMap getPrimaryKey(Criteria criteria) throws java.lang.Exception
criteria
- A Criteria.Exception,
- a generic exception.public static void doUpdate(Criteria updateValues) throws java.lang.Exception
"WHERE primary_key_id = an int"
Convenience method used to update rows in the DB. Checks if a single int primary key is specified in the Criteria object and uses it to perform the udpate. If no primary key is specified an Exception will be thrown.
To perform an update with non-primary key fields in the WHERE clause use doUpdate(criteria, criteria).
updateValues
- A Criteria object containing values used in
set clause.Exception,
- a generic exception.public static void doUpdate(Criteria updateValues, DBConnection dbCon) throws java.lang.Exception
"WHERE primary_key_id = an int"
Convenience method used to update rows in the DB. Checks if a single int primary key is specified in the Criteria object and uses it to perform the udpate. If no primary key is specified an Exception will be thrown.
To perform an update with non-primary key fields in the WHERE clause use doUpdate(criteria, criteria).
updateValues
- A Criteria object containing values used in
set clause.dbCon
- A DBConnection.Exception,
- a generic exception.public static void doUpdate(Criteria selectCriteria, Criteria updateValues) throws java.lang.Exception
WHERE some_column = some value AND could_have_another_column = another value AND so on...
Method used to update rows in the DB. Rows are selected based on selectCriteria and updated using values in updateValues.
selectCriteria
- A Criteria object containing values used
in where clause.updateValues
- A Criteria object containing values used in
set clause.Exception,
- a generic exception.public static void doUpdate(Criteria selectCriteria, Criteria updateValues, DBConnection dbCon) throws java.lang.Exception
WHERE some_column = some value AND could_have_another_column = another value AND so on.
Method used to update rows in the DB. Rows are selected based on selectCriteria and updated using values in updateValues.
selectCriteria
- A Criteria object containing values used
in where clause.updateValues
- A Criteria object containing values used in
set clause.dbCon
- A DBConnection.Exception,
- a generic exception.public static int executeStatement(java.lang.String stmt) throws java.lang.Exception
stmt
- A String with the sql statement to execute.Exception,
- a generic exception.public static int executeStatement(java.lang.String stmt, java.lang.String dbName) throws java.lang.Exception
stmt
- A String with the sql statement to execute.dbName
- Name of database to connect to.Exception,
- a generic exception.public static int executeStatement(java.lang.String stmt, DBConnection dbCon) throws java.lang.Exception
stmt
- A String with the sql statement to execute.dbCon
- A DBConnection.Exception,
- a generic exception.protected static void handleMultipleRecords(com.workingdogs.village.DataSet ds) throws java.lang.Exception
ds
- The DataSet which contains multiple records.java.lang.Exception
- Couldn't handle multiple records.protected static void handleMultiple(com.workingdogs.village.DataSet ds) throws java.lang.Exception
public static MapBuilder getMapBuilder()
public static MapBuilder getMapBuilder(java.lang.String name)
public static java.util.Vector doPSSelect(Criteria criteria, DBConnection dbCon) throws java.lang.Exception
select
using a PreparedStatement.java.lang.Exception
- Error performing database query.public static java.util.Vector doPSSelect(Criteria criteria) throws java.lang.Exception
public static void createPreparedStatement(Criteria criteria, java.lang.StringBuffer queryString, java.util.List params) throws java.lang.Exception
private static void setLimit(Criteria criteria, DB db, Query query)
private static java.lang.Exception getMalformedColumnNameException(java.lang.String criteriaPhrase, java.lang.String columnName)
malformed column name in Criteria [criteriaPhrase]:
'[columnName]' is not of the form 'table.column'
criteriaPhrase
- a String, one of "select", "join", or "order by"columnName
- a String containing the offending column name
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |