public class JDBCQueryExpression extends java.lang.Object implements QueryExpression
| Modifier and Type | Class and Description |
|---|---|
(package private) static class |
JDBCQueryExpression.Join |
| Modifier and Type | Field and Description |
|---|---|
protected java.util.Vector |
_cols |
protected java.util.Vector |
_conds |
protected DbMetaInfo |
_dbInfo
MetaInfo as acquired from the RDBMS
|
protected boolean |
_distinct |
protected PersistenceFactory |
_factory |
protected java.util.Vector |
_joins |
protected java.lang.String |
_limit |
protected java.lang.String |
_offset |
protected java.lang.String |
_order |
protected java.lang.String |
_select |
protected java.util.Hashtable |
_tables |
protected java.lang.String |
_where |
OpBetween, OpBetweenAnd, OpEquals, OpGreater, OpGreaterEquals, OpLess, OpLessEquals, OpLike, OpNotEquals, OpNotLike| Constructor and Description |
|---|
JDBCQueryExpression(PersistenceFactory factory) |
| Modifier and Type | Method and Description |
|---|---|
void |
addColumn(java.lang.String tableName,
java.lang.String columnName)
Add a column used in the query.
|
void |
addCondition(java.lang.String tableName,
java.lang.String columnName,
java.lang.String condOp,
java.lang.String value)
Add a condition.
|
void |
addInnerJoin(java.lang.String leftTable,
java.lang.String[] leftColumn,
java.lang.String rightTable,
java.lang.String[] rightColumn)
Add an inner join
|
void |
addInnerJoin(java.lang.String leftTable,
java.lang.String[] leftColumn,
java.lang.String leftTableAlias,
java.lang.String rightTable,
java.lang.String[] rightColumn,
java.lang.String rightTableAlias)
Add an inner join with an aliases for the tables
|
void |
addInnerJoin(java.lang.String leftTable,
java.lang.String leftColumn,
java.lang.String rightTable,
java.lang.String rightColumn)
Add an inner join.
|
void |
addInnerJoin(java.lang.String leftTable,
java.lang.String leftColumn,
java.lang.String leftTableAlias,
java.lang.String rightTable,
java.lang.String rightColumn,
java.lang.String rightTableAlias)
Add an inner join with an aliases for the tables
|
void |
addLimitClause(java.lang.String limit)
Adds an limit clause.
|
void |
addOffsetClause(java.lang.String offset)
Adds an offset clause.
|
void |
addOrderClause(java.lang.String order)
Adds an order by clause.
|
void |
addOuterJoin(java.lang.String leftTable,
java.lang.String[] leftColumn,
java.lang.String rightTable,
java.lang.String[] rightColumn) |
void |
addOuterJoin(java.lang.String leftTable,
java.lang.String[] leftColumn,
java.lang.String rightTable,
java.lang.String[] rightColumn,
java.lang.String rightTableAlias) |
void |
addOuterJoin(java.lang.String leftTable,
java.lang.String leftColumn,
java.lang.String rightTable,
java.lang.String rightColumn)
Add an outer join.
|
void |
addOuterJoin(java.lang.String leftTable,
java.lang.String leftColumn,
java.lang.String rightTable,
java.lang.String rightColumn,
java.lang.String rightTableAlias)
Add an outer join.
|
void |
addParameter(java.lang.String tableName,
java.lang.String columnName,
java.lang.String condOp)
Add a query paramater.
|
void |
addSelect(java.lang.String selectClause)
Add an entire select clause to the query with one call.
|
void |
addTable(java.lang.String tableName)
Add a table to the from clause.
|
void |
addTable(java.lang.String tableName,
java.lang.String tableAlias)
Add a table with an alias to the from clause.
|
void |
addWhereClause(java.lang.String where)
Adds a where clause.
|
protected boolean |
addWhereClause(java.lang.StringBuffer sql,
boolean first) |
java.lang.Object |
clone()
Returns a clone of the query expression that can be further
modified.
|
java.lang.String |
encodeColumn(java.lang.String tableName,
java.lang.String columnName)
Encode a TableColumn for use in expressions
|
protected java.lang.String |
getColumnList() |
protected java.lang.StringBuffer |
getStandardStatement(boolean lock,
boolean oj)
Helper method.
|
java.lang.String |
getStatement(boolean lock)
Creates a SQL statement.
|
boolean |
isLimitClauseSupported()
Provides a default implementation of
QueryExpression.isLimitClauseSupported(). |
boolean |
isOffsetClauseSupported()
Provides a default implementation of
QueryExpression.isOffsetClauseSupported(). |
void |
setDbMetaInfo(DbMetaInfo dbInfo)
Store database meta information
|
void |
setDistinct(boolean distinct)
Set the query to be distinct.
|
java.lang.String |
toString() |
protected java.util.Hashtable _tables
protected java.util.Vector _cols
protected java.util.Vector _conds
protected java.util.Vector _joins
protected java.lang.String _select
protected java.lang.String _where
protected java.lang.String _order
protected java.lang.String _limit
protected java.lang.String _offset
protected boolean _distinct
protected PersistenceFactory _factory
protected DbMetaInfo _dbInfo
public JDBCQueryExpression(PersistenceFactory factory)
public void setDbMetaInfo(DbMetaInfo dbInfo)
setDbMetaInfo in interface QueryExpressiondbInfo - DbMetaInfo instancepublic void setDistinct(boolean distinct)
QueryExpressionsetDistinct in interface QueryExpressiondistinct - If the query should include DISTINCT in the SQL select.public void addColumn(java.lang.String tableName,
java.lang.String columnName)
QueryExpressionaddColumn in interface QueryExpressiontableName - The table namecolumnName - The column namepublic void addTable(java.lang.String tableName)
QueryExpressionaddTable in interface QueryExpressiontableName - The name of the table to add to the select clausepublic void addTable(java.lang.String tableName,
java.lang.String tableAlias)
QueryExpressionaddTable in interface QueryExpressiontableName - The name of the table to add to the select clausetableAlias - The name of the alias under which the where clauses will access itpublic void addParameter(java.lang.String tableName,
java.lang.String columnName,
java.lang.String condOp)
QueryExpressionaddParameter in interface QueryExpressiontableName - The table namecolumnName - The column namecondOp - The conditional operationpublic void addCondition(java.lang.String tableName,
java.lang.String columnName,
java.lang.String condOp,
java.lang.String value)
QueryExpressionaddCondition in interface QueryExpressiontableName - The table namecolumnName - The column namecondOp - The conditional operationvalue - The conditional valuepublic java.lang.String encodeColumn(java.lang.String tableName,
java.lang.String columnName)
QueryExpressionencodeColumn in interface QueryExpressiontableName - The table namecolumnName - The column namepublic void addInnerJoin(java.lang.String leftTable,
java.lang.String leftColumn,
java.lang.String rightTable,
java.lang.String rightColumn)
QueryExpressionaddInnerJoin in interface QueryExpressionleftTable - The table name on the left sideleftColumn - The column name on the left siderightTable - The table name on the right siderightColumn - The column name on the right sidepublic void addInnerJoin(java.lang.String leftTable,
java.lang.String leftColumn,
java.lang.String leftTableAlias,
java.lang.String rightTable,
java.lang.String rightColumn,
java.lang.String rightTableAlias)
QueryExpressionaddInnerJoin in interface QueryExpressionleftTable - The table name on the left sideleftColumn - The column name on the left sideleftTableAlias - The alias name to use for the table on the left siderightTable - The table name on the right siderightColumn - The column name on the right siderightTableAlias - The alias name to use for the table on the right sidepublic void addInnerJoin(java.lang.String leftTable,
java.lang.String[] leftColumn,
java.lang.String rightTable,
java.lang.String[] rightColumn)
QueryExpressionaddInnerJoin in interface QueryExpressionleftTable - The table name on the left sideleftColumn - The column names on the left siderightTable - The table name on the right siderightColumn - The column names on the right sidepublic void addInnerJoin(java.lang.String leftTable,
java.lang.String[] leftColumn,
java.lang.String leftTableAlias,
java.lang.String rightTable,
java.lang.String[] rightColumn,
java.lang.String rightTableAlias)
QueryExpressionaddInnerJoin in interface QueryExpressionleftTable - The table name on the left sideleftColumn - The column names on the left sideleftTableAlias - The alias name to use for the table on the left siderightTable - The table name on the right siderightColumn - The column names on the right siderightTableAlias - The alias name to use for the table on the right sidepublic void addOuterJoin(java.lang.String leftTable,
java.lang.String leftColumn,
java.lang.String rightTable,
java.lang.String rightColumn)
QueryExpressionaddOuterJoin in interface QueryExpressionleftTable - The table name on the left sideleftColumn - The column name on the left siderightTable - The table name on the right siderightColumn - The column name on the right sidepublic void addOuterJoin(java.lang.String leftTable,
java.lang.String leftColumn,
java.lang.String rightTable,
java.lang.String rightColumn,
java.lang.String rightTableAlias)
QueryExpressionaddOuterJoin in interface QueryExpressionleftTable - The table name on the left sideleftColumn - The column name on the left siderightTable - The table name on the right siderightColumn - The column name on the right siderightTableAlias - The alias name to use for the table on the right sidepublic void addOuterJoin(java.lang.String leftTable,
java.lang.String[] leftColumn,
java.lang.String rightTable,
java.lang.String[] rightColumn)
addOuterJoin in interface QueryExpressionpublic void addOuterJoin(java.lang.String leftTable,
java.lang.String[] leftColumn,
java.lang.String rightTable,
java.lang.String[] rightColumn,
java.lang.String rightTableAlias)
addOuterJoin in interface QueryExpressionpublic void addSelect(java.lang.String selectClause)
QueryExpressionaddSelect in interface QueryExpressionselectClause - The entire sql select clause without the word SELECTpublic void addWhereClause(java.lang.String where)
QueryExpressionaddWhereClause in interface QueryExpressionwhere - The WHERE clause to add (without the word WHERE).public void addOrderClause(java.lang.String order)
QueryExpressionaddOrderClause in interface QueryExpressionorder - The ORDER BY clause to add (without the words
ORDER BY).public void addLimitClause(java.lang.String limit)
throws SyntaxNotSupportedException
QueryExpressionaddLimitClause in interface QueryExpressionlimit - The LIMIT clause to add (without the word LIMIT).SyntaxNotSupportedException - If the LIMIT clause is not supported by the RDBMS.public void addOffsetClause(java.lang.String offset)
throws SyntaxNotSupportedException
QueryExpressionaddOffsetClause in interface QueryExpressionoffset - The OFFSET clause to add (without the word OFFSET).SyntaxNotSupportedException - If the OFFSET clause is not supported by the RDBMS.protected java.lang.String getColumnList()
protected boolean addWhereClause(java.lang.StringBuffer sql,
boolean first)
public java.lang.String getStatement(boolean lock)
throws SyntaxNotSupportedException
SyntaxNotSupportedException.getStatement in interface QueryExpressionlock - True if a write lock is requiredSyntaxNotSupportedException - If the RDBMS does not support a particular feature.protected java.lang.StringBuffer getStandardStatement(boolean lock,
boolean oj)
lock - whether to lock selected tablesoj - true in the first case above, false in the second case.public java.lang.String toString()
toString in class java.lang.Objectpublic java.lang.Object clone()
QueryExpressionclone in interface QueryExpressionclone in class java.lang.Objectpublic boolean isLimitClauseSupported()
QueryExpression.isLimitClauseSupported().isLimitClauseSupported in interface QueryExpressionQueryExpression.isLimitClauseSupported()public boolean isOffsetClauseSupported()
QueryExpression.isOffsetClauseSupported().isOffsetClauseSupported in interface QueryExpressionQueryExpression.isOffsetClauseSupported()Intalio Inc. (C) 1999-2006. All rights reserved http://www.intalio.com