org.exolab.castor.jdo.drivers

Class JDBCQueryExpression

Implemented Interfaces:
QueryExpression
Known Direct Subclasses:
DB2QueryExpression, HsqlQueryExpression, InformixQueryExpression, InstantDBQueryExpression, InterbaseQueryExpression, MySQLQueryExpression, OracleQueryExpression, PostgreSQLQueryExpression, SapDbQueryExpression, SQLServerQueryExpression, SybaseQueryExpression

public class JDBCQueryExpression
extends java.lang.Object
implements QueryExpression

Version:
$Revision: 1.1.1.1 $ $Date: 2003/03/03 07:08:13 $
Author:
Assaf Arkin

Nested Class Summary

(package private) static class
JDBCQueryExpression.Join

Field Summary

protected Vector
_cols
protected Vector
_conds
protected boolean
_distinct
protected PersistenceFactory
_factory
protected Vector
_joins
protected String
_limit
protected String
_order
protected String
_select
protected Hashtable
_tables
protected String
_where

Fields inherited from interface org.exolab.castor.persist.spi.QueryExpression

OpBetween, OpBetweenAnd, OpEquals, OpGreater, OpGreaterEquals, OpLess, OpLessEquals, OpLike, OpNotEquals, OpNotLike

Constructor Summary

JDBCQueryExpression(PersistenceFactory factory)

Method Summary

void
addColumn(String tableName, String columnName)
void
addCondition(String tableName, String columnName, String condOp, String value)
void
addInnerJoin(String leftTable, String leftColumn, String rightTable, String rightColumn)
void
addInnerJoin(String leftTable, String leftColumn, String leftTableAlias, String rightTable, String rightColumn, String rightTableAlias)
void
addInnerJoin(String leftTable, String[] leftColumn, String leftTableAlias, String rightTable, String[] rightColumn, String rightTableAlias)
void
addInnerJoin(String leftTable, String[] leftColumn, String rightTable, String[] rightColumn)
void
addLimitClause(String limit)
void
addOrderClause(String order)
void
addOuterJoin(String leftTable, String leftColumn, String rightTable, String rightColumn)
void
addOuterJoin(String leftTable, String leftColumn, String rightTable, String rightColumn, String rightTableAlias)
void
addOuterJoin(String leftTable, String[] leftColumn, String rightTable, String[] rightColumn)
void
addOuterJoin(String leftTable, String[] leftColumn, String rightTable, String[] rightColumn, String rightTableAlias)
void
addParameter(String tableName, String columnName, String condOp)
void
addSelect(String selectClause)
void
addTable(String tableName)
void
addTable(String tableName, String tableAlias)
void
addWhereClause(String where)
protected boolean
addWhereClause(StringBuffer sql, boolean first)
Object
clone()
String
encodeColumn(String tableName, String columnName)
protected String
getColumnList()
protected StringBuffer
getStandardStatement(boolean lock, boolean oj)
Helper method.
String
getStatement(boolean lock)
This should work for JDBC drivers with a full support of JDBC specification.
void
setDistinct(boolean distinct)
String
toString()

Field Details

_cols

protected Vector _cols

_conds

protected Vector _conds

_distinct

protected boolean _distinct

_factory

protected PersistenceFactory _factory

_joins

protected Vector _joins

_limit

protected String _limit

_order

protected String _order

_select

protected String _select

_tables

protected Hashtable _tables

_where

protected String _where

Constructor Details

JDBCQueryExpression

public JDBCQueryExpression(PersistenceFactory factory)

Method Details

addColumn

public void addColumn(String tableName,
                      String columnName)
Specified by:
addColumn in interface QueryExpression

addCondition

public void addCondition(String tableName,
                         String columnName,
                         String condOp,
                         String value)
Specified by:
addCondition in interface QueryExpression

addInnerJoin

public void addInnerJoin(String leftTable,
                         String leftColumn,
                         String rightTable,
                         String rightColumn)
Specified by:
addInnerJoin in interface QueryExpression

addInnerJoin

public void addInnerJoin(String leftTable,
                         String leftColumn,
                         String leftTableAlias,
                         String rightTable,
                         String rightColumn,
                         String rightTableAlias)
Specified by:
addInnerJoin in interface QueryExpression

addInnerJoin

public void addInnerJoin(String leftTable,
                         String[] leftColumn,
                         String leftTableAlias,
                         String rightTable,
                         String[] rightColumn,
                         String rightTableAlias)
Specified by:
addInnerJoin in interface QueryExpression

addInnerJoin

public void addInnerJoin(String leftTable,
                         String[] leftColumn,
                         String rightTable,
                         String[] rightColumn)
Specified by:
addInnerJoin in interface QueryExpression

addLimitClause

public void addLimitClause(String limit)
Specified by:
addLimitClause in interface QueryExpression

addOrderClause

public void addOrderClause(String order)
Specified by:
addOrderClause in interface QueryExpression

addOuterJoin

public void addOuterJoin(String leftTable,
                         String leftColumn,
                         String rightTable,
                         String rightColumn)
Specified by:
addOuterJoin in interface QueryExpression

addOuterJoin

public void addOuterJoin(String leftTable,
                         String leftColumn,
                         String rightTable,
                         String rightColumn,
                         String rightTableAlias)
Specified by:
addOuterJoin in interface QueryExpression

addOuterJoin

public void addOuterJoin(String leftTable,
                         String[] leftColumn,
                         String rightTable,
                         String[] rightColumn)
Specified by:
addOuterJoin in interface QueryExpression

addOuterJoin

public void addOuterJoin(String leftTable,
                         String[] leftColumn,
                         String rightTable,
                         String[] rightColumn,
                         String rightTableAlias)
Specified by:
addOuterJoin in interface QueryExpression

addParameter

public void addParameter(String tableName,
                         String columnName,
                         String condOp)
Specified by:
addParameter in interface QueryExpression

addSelect

public void addSelect(String selectClause)
Specified by:
addSelect in interface QueryExpression

addTable

public void addTable(String tableName)
Specified by:
addTable in interface QueryExpression

addTable

public void addTable(String tableName,
                     String tableAlias)
Specified by:
addTable in interface QueryExpression

addWhereClause

public void addWhereClause(String where)
Specified by:
addWhereClause in interface QueryExpression

addWhereClause

protected boolean addWhereClause(StringBuffer sql,
                                 boolean first)

clone

public Object clone()
Specified by:
clone in interface QueryExpression

encodeColumn

public String encodeColumn(String tableName,
                           String columnName)
Specified by:
encodeColumn in interface QueryExpression

getColumnList

protected String getColumnList()

getStandardStatement

protected StringBuffer getStandardStatement(boolean lock,
                                            boolean oj)
Helper method. Can be used in two cases: 1) for JDBC drivers which support "{oj ...OUTER JOIN ...}" notation (in accordance with JDBC specification); 2) for the databases which support "... OUTER JOIN ..." notation (in accordance with SQL-92 standard); .
Parameters:
lock - whether to lock selected tables
oj - true in the first case above, false in the second case.

getStatement

public String getStatement(boolean lock)
This should work for JDBC drivers with a full support of JDBC specification.
Specified by:
getStatement in interface QueryExpression

setDistinct

public void setDistinct(boolean distinct)
Specified by:
setDistinct in interface QueryExpression

toString

public String toString()

Intalio Inc. (C) 1999-2003. All rights reserved http://www.intalio.com