|
Enhydra 3.0.1 API | ||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--com.lutris.dods.builder.generator.query.QueryBuilder
A QueryBuilder is a helper-object used by the xxxQuery classes. Stand-alone usage: QueryBuilder qb; qb = new QueryBuilder( "cats" ); or qb = new QueryBuilder( "cats", "name, age" ); ... qb.addWhereClause( "owner.name", "Smith", QueryBuilder.NOT_NULL, QueryBuilder.EXACT_MATCH ); qb.addWhereClause( "paws", 3, QueryBuilder.GREATER_THAN ); qb.addReferentialWhereClause( "cat.ownerId", "owner.Id" ); ResultSet rs = qb.executeQuery( conn ); ... qb.reset();
Field Summary | |
static java.lang.String |
DEFAULT_MATCHES_KEYWORD
|
static java.lang.String |
DEFAULT_WILDCARD
|
static java.lang.String |
EQUAL
|
static boolean |
EXACT_MATCH
|
static java.lang.String |
GREATER_THAN
|
static java.lang.String |
GREATER_THAN_OR_EQUAL
|
static java.lang.String |
LESS_THAN
|
static java.lang.String |
LESS_THAN_OR_EQUAL
|
static java.lang.String |
NOT_EQUAL
|
static boolean |
NOT_EXACT
|
static boolean |
NOT_NULL
|
static boolean |
NULL_OK
|
Constructor Summary | |
QueryBuilder(RDBColumn[] fields)
Construct a QueryBuilder object that will return specified fields of a table. |
|
QueryBuilder(java.lang.String tableName)
Construct a QueryBuilder object that will return all fields of a table. |
|
QueryBuilder(java.lang.String tableName,
java.lang.String fieldList)
Construct a QueryBuilder object that will return specified fields of a table. |
|
QueryBuilder(java.util.Vector fields)
Construct a QueryBuilder object that will return specified fields of a table. |
Method Summary | |
void |
add(java.lang.String str)
Append to the 'select' portion of the SQL command. |
void |
addEndClause(java.lang.String clause)
Add a trailing clause (order by, group by, etc.) to the SQL command. |
void |
addOrderByColumn(RDBColumn column,
java.lang.String direction)
Add another field to the ORDER BY list. |
void |
addOrderByColumn(java.lang.String column,
java.lang.String direction)
Add another field to the ORDER BY list. |
boolean |
addReferentialWhereClause(java.lang.String column1,
java.lang.String column2)
Add an inter-table reference where-clause to the SQL command. |
void |
addTwoColumnWhereClause(java.lang.String column1,
java.lang.String column2)
Add a where-clause to the SQL command. |
void |
addTwoColumnWhereClause(java.lang.String column1,
java.lang.String column2,
java.lang.String cmp_op)
Add a where-clause to the SQL command. |
void |
addWhere(RDBColumn column,
java.sql.Date value,
java.lang.String cmp_op)
Add a where-clause that compares a column against a Date. |
void |
addWhere(RDBColumn column,
int value)
Add a where-clause that tests if a column is equal to a given String. |
void |
addWhere(RDBColumn column,
int value,
java.lang.String cmp_op)
Add a where-clause that compares a column against a String. |
void |
addWhere(RDBColumn column1,
RDBColumn column2)
Add a where-clause that tests if a column is equal to another column. |
void |
addWhere(RDBColumn column1,
RDBColumn column2,
java.lang.String cmp_op)
Add a where-clause that compares a column against another column. |
void |
addWhere(RDBColumn column,
java.lang.String value)
Add a where-clause that tests if a column is equal to a given String. |
void |
addWhere(RDBColumn column,
java.lang.String value,
java.lang.String cmp_op)
Add a where-clause that compares a column against a String. |
void |
addWhere(java.lang.String fullClause)
|
boolean |
addWhereClause(java.lang.String column,
java.math.BigDecimal value,
boolean nullOk)
Add a where-clause to the SQL command. |
void |
addWhereClause(java.lang.String column,
java.math.BigDecimal value,
java.lang.String dbtype,
boolean nullOk,
boolean exact)
Add a where-clause to the SQL command. |
void |
addWhereClause(java.lang.String column,
boolean value)
Add a where-clause to the SQL command. |
void |
addWhereClause(java.lang.String column,
boolean value,
java.lang.String dbtype,
boolean nullOk,
boolean exact)
Add a where-clause to the SQL command. |
void |
addWhereClause(java.lang.String column,
byte[] value,
java.lang.String dbtype,
boolean nullOk,
boolean exact)
Add a where-clause to the SQL command. |
void |
addWhereClause(java.lang.String column,
java.sql.Date value,
java.lang.String cmp_op)
Add a where-clause that compares a column against a date value to the SQL command. |
void |
addWhereClause(java.lang.String column,
java.sql.Date value,
java.lang.String dbtype,
boolean nullOk,
boolean exact)
Add a where-clause to the SQL command. |
void |
addWhereClause(java.lang.String column,
double value)
Add a where-clause to the SQL command. |
void |
addWhereClause(java.lang.String column,
double value,
java.lang.String cmp_op)
Add a where-clause to the SQL command. |
void |
addWhereClause(java.lang.String column,
double value,
java.lang.String dbtype,
boolean nullOk,
boolean exact)
Add a where-clause to the SQL command. |
void |
addWhereClause(java.lang.String column,
float value)
Add a where-clause to the SQL command. |
void |
addWhereClause(java.lang.String column,
float value,
java.lang.String cmp_op)
Add a where-clause to the SQL command. |
void |
addWhereClause(java.lang.String column,
float value,
java.lang.String dbtype,
boolean nullOk,
boolean exact)
Add a where-clause to the SQL command. |
void |
addWhereClause(java.lang.String column,
GenericDO DO,
java.lang.String dbtype,
boolean nullOk,
boolean exact)
Add a where-clause to the SQL command. |
void |
addWhereClause(java.lang.String column,
int value)
Add a where-clause to the SQL command. |
void |
addWhereClause(java.lang.String column,
int value,
java.lang.String cmp_op)
Add a where-clause to the SQL command. |
void |
addWhereClause(java.lang.String column,
int value,
java.lang.String dbtype,
boolean nullOk,
boolean exact)
Add a where-clause to the SQL command. |
boolean |
addWhereClause(java.lang.String column,
java.lang.String value,
boolean nullOk,
boolean exact)
Add a where-clause that compares a column against a string value to the SQL command. |
void |
addWhereClause(java.lang.String column,
java.lang.String value,
java.lang.String cmp_op)
Add a where-clause that compares a column against a string value to the SQL command. |
void |
addWhereClause(java.lang.String column,
java.lang.String value,
java.lang.String dbtype,
boolean nullOk,
boolean exact)
Add a where-clause to the SQL command. |
void |
addWhereClause(java.lang.String column,
java.sql.Timestamp date,
java.lang.String cmp_op)
|
void |
addWhereClause(java.lang.String column,
java.sql.Timestamp value,
java.lang.String dbtype,
boolean nullOk,
boolean exact)
Add a where-clause to the SQL command. |
void |
addWhereClause(java.lang.String column,
java.sql.Time value,
java.lang.String dbtype,
boolean nullOk,
boolean exact)
Add a where-clause to the SQL command. |
void |
addWhereCloseParen()
Close a previous addWhereOpenParen. |
void |
addWhereIn(RDBColumn field,
QueryBuilder qb)
|
void |
addWhereIn(RDBColumn field,
java.lang.String[] values)
|
void |
addWhereLeftOuter(RDBColumn column1,
RDBColumn column2)
Add a where-clause that imposes a LEFT OUTER JOIN to test if a column is equal to another column. |
void |
addWhereLower(RDBColumn column,
java.lang.String value,
java.lang.String cmp_op)
Add a where-clause that compares a column against a String. |
void |
addWhereOpenParen()
Specify that the next conditional expression (where-clause) should be preceded by '('. |
void |
addWhereOr()
Specify that the next conditional expression (where-clause) should be preceded by OR instead of AND. |
void |
addWhereRightOuter(RDBColumn column1,
RDBColumn column2)
Add a where-clause that imposes a RIGHT OUTER JOIN to test if a column is equal to another column. |
void |
applyParameters(java.sql.PreparedStatement ps,
int paramCount)
|
void |
close()
|
void |
debug()
Sets debug flag to print the SQL statement just before its execution. |
static void |
debugAll()
Sets debug flag to print the SQL statement just before its execution. |
void |
distinct()
|
java.sql.ResultSet |
executeQuery(DBConnection conn)
Execute the PreparedStatement and return a JDBC ResultSet. |
RDBRow |
getNextRow()
|
RDBRow[] |
getRows()
Returns an array of RDBRow objects. |
java.lang.String |
getSQL()
|
java.sql.PreparedStatement |
getStatement()
Return the JDBC PreparedStatement generated by prepareStatement(). |
java.lang.Object |
next(java.sql.ResultSet rs)
WARNING! This method is disabled and should never be called. |
void |
reset()
Reset the where-clause information. |
void |
setDatabaseVendor(java.lang.String vendor)
|
void |
setStringMatchDetails(java.lang.String match_keyword,
java.lang.String wildcard)
|
Methods inherited from class java.lang.Object |
clone,
equals,
finalize,
getClass,
hashCode,
notify,
notifyAll,
toString,
wait,
wait,
wait |
Field Detail |
public static final java.lang.String EQUAL
public static final java.lang.String NOT_EQUAL
public static final java.lang.String LESS_THAN
public static final java.lang.String LESS_THAN_OR_EQUAL
public static final java.lang.String GREATER_THAN
public static final java.lang.String GREATER_THAN_OR_EQUAL
public static final boolean NULL_OK
public static final boolean NOT_NULL
public static final boolean EXACT_MATCH
public static final boolean NOT_EXACT
public static final java.lang.String DEFAULT_MATCHES_KEYWORD
public static final java.lang.String DEFAULT_WILDCARD
Constructor Detail |
public QueryBuilder(java.util.Vector fields)
fields
- Vector of RDBColumn objects,
one for each column to be returned. Fields can refer to different tables.public QueryBuilder(RDBColumn[] fields)
fields
- array of RDBColumn objects,
one for each column to be returned. Fields can refer to different tables.public QueryBuilder(java.lang.String tableName)
table
- Name of the table on which to perform the SQL 'select'.public QueryBuilder(java.lang.String tableName, java.lang.String fieldList)
table
- Name of the table on which to perform the SQL 'select'.fieldList
- Comma-separated string of field names to retrieve.Method Detail |
public RDBRow[] getRows() throws QueryException
getNextRow
public RDBRow getNextRow() throws QueryException
public java.lang.Object next(java.sql.ResultSet rs) throws java.sql.SQLException, ObjectIdException
rs
- JDBC result set from which the next object
will be instantiated.public void addWhereOr()
Specify that the next conditional expression (where-clause) should be preceded by OR instead of AND. (AND is the default). For example: addWhereClause( "person.fname", "Bob", EQUAL ); addWhereClause( "person.lname", "Smith", EQUAL ); produces person.fname = 'Bob' AND person.lname = 'Smith' But: addWhereClause( "person.fname", "Bob", EQUAL ); addWhereOr(); addWhereClause( "person.lname", "Smith", EQUAL ); produces person.fname = 'Bob' OR person.lname = 'Smith' Disallows 'OR OR'. Trailing ORs are removed by prepareStatement().
public void addWhereOpenParen()
public void addWhereCloseParen()
public void addWhere(RDBColumn column, int value, java.lang.String cmp_op)
column
- A column (field) name to use as a search constraint.value
- int value to compare against.cmp_op
- The comparison operator to use: QueryBuilder.EQUAL, ...public void addWhere(RDBColumn column, int value)
column
- A column (field) name to use as a search constraint.value
- int value to compare against.public void addWhereLower(RDBColumn column, java.lang.String value, java.lang.String cmp_op)
column
- A column (field) name to use as a search constraint.value
- String value to compare against.cmp_op
- The comparison operator to use: QueryBuilder.EQUAL, ...public void addWhere(RDBColumn column, java.lang.String value, java.lang.String cmp_op)
column
- A column (field) name to use as a search constraint.value
- String value to compare against.cmp_op
- The comparison operator to use: QueryBuilder.EQUAL, ...public void addWhere(RDBColumn column, java.lang.String value)
column
- A column (field) name to use as a search constraint.value
- String value to compare against.public void addWhere(RDBColumn column, java.sql.Date value, java.lang.String cmp_op)
column
- A column (field) name to use as a search constraint.value
- Date value to compare against.cmp_op
- The comparison operator to use: QueryBuilder.EQUAL, ...public void addWhere(RDBColumn column1, RDBColumn column2, java.lang.String cmp_op)
column1
- A column (field) name to use as a search constraint.column2
- A column (field) name to use as a search constraint.cmp_op
- The comparison operator to use: QueryBuilder.EQUAL, ...public void addWhere(RDBColumn column1, RDBColumn column2)
column1
- A column (field) name to use as a search constraint.column2
- A column (field) name to use as a search constraint.public void addWhereRightOuter(RDBColumn column1, RDBColumn column2)
column1
- A column (field) name to use as a search constraint.column2
- A column (field) name to use as a search constraint.public void addWhereLeftOuter(RDBColumn column1, RDBColumn column2)
column1
- A column (field) name to use as a search constraint.column2
- A column (field) name to use as a search constraint.public void addTwoColumnWhereClause(java.lang.String column1, java.lang.String column2, java.lang.String cmp_op)
Add a where-clause to the SQL command. The where-clause compare the values of two columns using the specified comparison operator. E.g., we want to find cats with too many paws: column1 = "cat.paws" column2 = "animalNorms.catPaws" cmp_op = QueryBuilder.GREATER_THAN generates the where-clause: cat.paws > animalNorms.catPaws and remembers the table names (cat, animalNorms) for inclusion in the from-clause.
column1
- A column (field) name to use as a search constraint.column2
- Another column to compare against.cmp_op
- The comparison operator to use: QueryBuilder.EQUAL, ...public void addTwoColumnWhereClause(java.lang.String column1, java.lang.String column2)
Add a where-clause to the SQL command. The where-clause compare the values of two columns using the EQUAL operator. E.g., we want to find cats with the normal number of paws: column1 = "cat.paws" column2 = "animalNorms.catPaws" generates the where-clause: cat.paws = animalNorms.catPaws and remembers the table names (cat, animalNorms) for inclusion in the from-clause.
column1
- A column (field) name to use as a search constraint.column2
- Another column to compare against.public boolean addReferentialWhereClause(java.lang.String column1, java.lang.String column2)
Add an inter-table reference where-clause to the SQL command. The two columns specified will be compared using the EQUAL operator. column1 and column2 should refer to different tables. E.g.: column1 = "cat.ownerId" column2 = "owner.Id" generates the where-clause: cat.ownerId = owner.Id and remembers the table names for inclusion in the from-clause.
column1
- A column (field) name, possibly with a leading table name.column2
- A column (field) name, possibly with a leading table name.public void addWhereClause(java.lang.String column, java.lang.String value, java.lang.String cmp_op)
column
- The column (field) name to use as a search constraint.value
- The value to search for.cmp_op
- The comparison operator to use: QueryBuilder.EQUAL, ...public boolean addWhereClause(java.lang.String column, java.lang.String value, boolean nullOk, boolean exact)
column
- The column (field) name to use as a search constraint.value
- The value to search for.nullOk
- Whether a value of NULL is acceptable.exact
- Whether the value must match exactly (no wildcards).public boolean addWhereClause(java.lang.String column, java.math.BigDecimal value, boolean nullOk)
column
- The column (field) name to use as a search constraint.value
- The value to search for.nullOk
- Whether a value of NULL is acceptable.public void addWhereClause(java.lang.String column, int value)
column
- The column (field) name to use as a search constraint.value
- The value to search for.public void addWhereClause(java.lang.String column, int value, java.lang.String cmp_op)
column
- The column (field) name to use as a search constraint.value
- The value to search for.cmp_op
- The comparison operator to use: QueryBuilder.EQUAL, ...public void addWhereClause(java.lang.String column, float value)
column
- The column (field) name to use as a search constraint.value
- The value to search for.public void addWhereClause(java.lang.String column, float value, java.lang.String cmp_op)
column
- The column (field) name to use as a search constraint.value
- The value to search for.cmp_op
- The comparison operator to use: QueryBuilder.EQUAL, ...public void addWhereClause(java.lang.String column, double value)
column
- The column (field) name to use as a search constraint.value
- The value to search for.public void addWhereClause(java.lang.String column, double value, java.lang.String cmp_op)
column
- The column (field) name to use as a search constraint.value
- The value to search for.cmp_op
- The comparison operator to use: QueryBuilder.EQUAL, ...public void addWhereClause(java.lang.String column, boolean value)
column
- The column (field) name to use as a search constraint.value
- The value to search for.public void addEndClause(java.lang.String clause)
clause
- The clause to append to the SQL command.public void add(java.lang.String str)
str
- The string to append to the SQL command.public void debug()
public static void debugAll()
public void distinct()
public void addWhere(java.lang.String fullClause)
public void addWhereIn(RDBColumn field, QueryBuilder qb) throws QueryException
public void addWhereIn(RDBColumn field, java.lang.String[] values) throws QueryException
public java.lang.String getSQL()
public void applyParameters(java.sql.PreparedStatement ps, int paramCount) throws java.sql.SQLException
public java.sql.PreparedStatement getStatement()
public java.sql.ResultSet executeQuery(DBConnection conn) throws java.sql.SQLException
conn
- The DBConnection object to use for the search.public void reset()
public void close()
public void addWhereClause(java.lang.String column, java.lang.String value, java.lang.String dbtype, boolean nullOk, boolean exact) throws QueryException
column
- The column (field) name to use as a search constraint.value
- The value to search for.public void addWhereClause(java.lang.String column, byte[] value, java.lang.String dbtype, boolean nullOk, boolean exact) throws QueryException
column
- The column (field) name to use as a search constraint.value
- The value to search for.public void addWhereClause(java.lang.String column, boolean value, java.lang.String dbtype, boolean nullOk, boolean exact)
column
- The column (field) name to use as a search constraint.value
- The value to search for.public void addWhereClause(java.lang.String column, int value, java.lang.String dbtype, boolean nullOk, boolean exact) throws QueryException
column
- The column (field) name to use as a search constraint.value
- The value to search for.public void addWhereClause(java.lang.String column, float value, java.lang.String dbtype, boolean nullOk, boolean exact) throws QueryException
column
- The column (field) name to use as a search constraint.value
- The value to search for.public void addWhereClause(java.lang.String column, double value, java.lang.String dbtype, boolean nullOk, boolean exact) throws QueryException
column
- The column (field) name to use as a search constraint.value
- The value to search for.public void addWhereClause(java.lang.String column, java.math.BigDecimal value, java.lang.String dbtype, boolean nullOk, boolean exact) throws QueryException
column
- The column (field) name to use as a search constraint.value
- The value to search for.public void setDatabaseVendor(java.lang.String vendor)
public void setStringMatchDetails(java.lang.String match_keyword, java.lang.String wildcard)
public void addWhereClause(java.lang.String column, java.sql.Date value, java.lang.String dbtype, boolean nullOk, boolean exact) throws QueryException
column
- The column (field) name to use as a search constraint.value
- The value to search for.public void addWhereClause(java.lang.String column, java.sql.Date value, java.lang.String cmp_op)
column
- The column (field) name to use as a search constraint.value
- The value to compare against.cmp_op
- The comparison operator to use: QueryBuilder.EQUAL, ...public void addWhereClause(java.lang.String column, java.sql.Timestamp date, java.lang.String cmp_op)
public void addWhereClause(java.lang.String column, java.sql.Time value, java.lang.String dbtype, boolean nullOk, boolean exact) throws QueryException
column
- The column (field) name to use as a search constraint.value
- The value to search for.public void addWhereClause(java.lang.String column, java.sql.Timestamp value, java.lang.String dbtype, boolean nullOk, boolean exact) throws QueryException
column
- The column (field) name to use as a search constraint.value
- The value to search for.public void addWhereClause(java.lang.String column, GenericDO DO, java.lang.String dbtype, boolean nullOk, boolean exact) throws QueryException
column
- The column (field) name to use as a search constraint.value
- The value to search for.public void addOrderByColumn(java.lang.String column, java.lang.String direction)
column
- The column to order bydirection
- ASCENDING or DESCENDING orderpublic void addOrderByColumn(RDBColumn column, java.lang.String direction)
column
- The column to order bydirection
- ASCENDING or DESCENDING order
|
Enhydra 3.0.1 API | ||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |