|
Enhydra 3.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.addTwoColumnWhereClause( "cat.ownerId", "owner.Id", QueryBuilder.EQUAL ); ResultSet rs = qb.executeQuery( conn ); ... qb.reset();
Field Summary | |
static java.lang.String |
CASE_INSENSITIVE_CONTAINS
|
static java.lang.String |
CASE_INSENSITIVE_ENDS_WITH
|
static java.lang.String |
CASE_INSENSITIVE_EQUAL
|
static java.lang.String |
CASE_INSENSITIVE_STARTS_WITH
|
static java.lang.String |
CASE_SENSITIVE_CONTAINS
|
static java.lang.String |
CASE_SENSITIVE_ENDS_WITH
|
static java.lang.String |
CASE_SENSITIVE_STARTS_WITH
|
static java.lang.String |
DEFAULT_MATCHES_KEYWORD
|
static java.lang.String |
DEFAULT_WILDCARD
|
static java.lang.String |
EQUAL
|
static boolean |
EXACT_MATCH
Deprecated. Use addWhere() methods instead of addWhereClause() methods. |
static java.lang.String |
GREATER_THAN
|
static java.lang.String |
GREATER_THAN_OR_EQUAL
|
static java.lang.String |
IS_NOT_NULL
|
static java.lang.String |
IS_NULL
|
static java.lang.String |
LESS_THAN
|
static java.lang.String |
LESS_THAN_OR_EQUAL
|
static java.lang.String |
NOT_EQUAL
|
static boolean |
NOT_EXACT
Deprecated. Use addWhere() methods instead of addWhereClause() methods. |
static boolean |
NOT_NULL
Deprecated. Use addWhere() methods instead of addWhereClause() methods. |
static boolean |
NULL_OK
Deprecated. Use addWhere() methods instead of addWhereClause() methods. |
Constructor Summary | |
QueryBuilder()
Construct a QueryBuilder object. |
|
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)
Deprecated. Use addEndClause() instead. |
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. |
void |
addTwoColumnWhereClause(java.lang.String column1,
java.lang.String column2)
Deprecated. Use addWhere(RDBColumn c1, RDBColumn c1) instead. |
void |
addTwoColumnWhereClause(java.lang.String column1,
java.lang.String column2,
java.lang.String cmp_op)
Deprecated. Use addWhere(RDBColumn c1, RDBColumn c1, String cmp_op) instead. |
void |
addWhere(RDBColumn column,
java.math.BigDecimal value,
java.lang.String cmp_op)
Add a where-clause that compares a column against a String. |
void |
addWhere(RDBColumn column,
boolean value,
java.lang.String cmp_op)
Add a where-clause that compares a column against a String. |
void |
addWhere(RDBColumn column,
byte[] value,
java.lang.String cmp_op)
Add a where-clause that compares a column against a byte array. |
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,
double value,
java.lang.String cmp_op)
Add a where-clause that compares a column against a String. |
void |
addWhere(RDBColumn column,
float value,
java.lang.String cmp_op)
Add a where-clause that compares a column against a String. |
void |
addWhere(RDBColumn column,
GenericDO value,
java.lang.String cmp_op)
Add a where-clause that compares a column against a String. |
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 column,
long 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(RDBColumn column,
java.sql.Timestamp value,
java.lang.String cmp_op)
Add a where-clause that compares a column against a String. |
void |
addWhere(RDBColumn column,
java.sql.Time 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)
Deprecated. Use addWhere(RDBColumn c1, BigDecimal value, String cmp_op) instead. |
void |
addWhereClause(java.lang.String column,
boolean value)
Deprecated. Use addWhere(RDBColumn column, boolean value) instead. |
void |
addWhereClause(java.lang.String column,
boolean value,
java.lang.String cmp_op)
Deprecated. Use addWhere(RDBColumn column, boolean value, String cmp_op ) instead. |
void |
addWhereClause(java.lang.String column,
java.sql.Date date,
java.lang.String cmp_op)
Deprecated. Use addWhere(RDBColumn c1, Date value, String cmp_op) instead. |
void |
addWhereClause(java.lang.String column,
double value)
Deprecated. Use addWhere(RDBColumn column, double value) instead. |
void |
addWhereClause(java.lang.String column,
double value,
java.lang.String cmp_op)
Deprecated. Use addWhere(RDBColumn column, double value, String cmp_op ) instead. |
void |
addWhereClause(java.lang.String column,
float value)
Deprecated. Use addWhere(RDBColumn column, float value) instead. |
void |
addWhereClause(java.lang.String column,
float value,
java.lang.String cmp_op)
Deprecated. Use addWhere(RDBColumn column, float value, String cmp_op ) instead. |
void |
addWhereClause(java.lang.String column,
int value)
Deprecated. Use addWhere(RDBColumn column, int value) instead. |
void |
addWhereClause(java.lang.String column,
int value,
java.lang.String cmp_op)
Deprecated. Use addWhere(RDBColumn column, int value, String cmp_op ) instead. |
void |
addWhereClause(java.lang.String column,
long value)
Deprecated. Use addWhere(RDBColumn column, long value) instead. |
void |
addWhereClause(java.lang.String column,
long value,
java.lang.String cmp_op)
Deprecated. Use addWhere(RDBColumn column, long value, String cmp_op ) instead. |
void |
addWhereClause(java.lang.String column,
java.lang.String value,
java.lang.String cmp_op)
Deprecated. Use addWhere(RDBColumn column, String value, String cmp_op ) instead. |
void |
addWhereClause(java.lang.String column,
java.sql.Timestamp date,
java.lang.String cmp_op)
|
void |
addWhereClause(java.lang.String column,
java.sql.Time date,
java.lang.String cmp_op)
|
void |
addWhereCloseParen()
Close a previous addWhereOpenParen. |
void |
addWhereIn(RDBColumn field,
java.lang.Object[] values)
QueryBuilder.addWhereIn( RDBColumn, Object[] ) allows queries like select Person.Age from Person where Person.Name in ( "Bob", "Joe" ) with code like QueryBuilder qb = new QueryBuilder(); qb.select( PersonDO.Age ); String[] values = { "Bob", "Joe" }; qb.addWhereIn( PersonDO.Name, values ); |
void |
addWhereIn(RDBColumn field,
QueryBuilder qb)
|
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()
|
static boolean |
compare(boolean a,
boolean b,
java.lang.String cmp_op)
Wrapper for compare() method that takes Objects for arguments. |
static boolean |
compare(double a,
double b,
java.lang.String cmp_op)
Wrapper for compare() method that takes Objects for arguments. |
static boolean |
compare(java.lang.Object a,
java.lang.Object b,
java.lang.String cmp_op)
Compare two values according to a QueryBuilder comparison operator. |
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 |
select(RDBColumn field)
Add a field to be returned by this QueryBuilder. |
void |
setDatabaseVendor(java.lang.String vendor)
|
void |
setMaxRows(int x)
|
void |
setStringMatchDetails(java.lang.String match_keyword,
java.lang.String wildcard)
Set the string matching details for inexact string matches See dods.conf for details. |
static java.lang.String |
stringReplace(java.lang.String s,
java.lang.String find,
java.lang.String replace)
Replace a substring with another string. |
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 java.lang.String IS_NULL
public static final java.lang.String IS_NOT_NULL
public static final java.lang.String CASE_SENSITIVE_CONTAINS
public static final java.lang.String CASE_INSENSITIVE_CONTAINS
public static final java.lang.String CASE_SENSITIVE_STARTS_WITH
public static final java.lang.String CASE_INSENSITIVE_STARTS_WITH
public static final java.lang.String CASE_SENSITIVE_ENDS_WITH
public static final java.lang.String CASE_INSENSITIVE_ENDS_WITH
public static final java.lang.String CASE_INSENSITIVE_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()
public QueryBuilder(java.lang.String tableName)
table
- Name of the table on which to perform the SQL 'select'.getNextRow
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 void select(RDBColumn field)
field
- RDBColumn object to be returned.
Fields can refer to different tables.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, GenericDO 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, byte[] value, java.lang.String cmp_op)
column
- A column (field) name to use as a search constraint.value
- byte array to compare against.cmp_op
- The comparison operator to use: QueryBuilder.EQUAL, ...public void addWhere(RDBColumn column, java.sql.Time 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, java.sql.Timestamp 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, long value, java.lang.String cmp_op)
column
- A column (field) name to use as a search constraint.value
- long value to compare against.cmp_op
- The comparison operator to use: QueryBuilder.EQUAL, ...public void addWhere(RDBColumn column, double value, java.lang.String cmp_op)
column
- A column (field) name to use as a search constraint.value
- double value to compare against.cmp_op
- The comparison operator to use: QueryBuilder.EQUAL, ...public void addWhere(RDBColumn column, float value, java.lang.String cmp_op)
column
- A column (field) name to use as a search constraint.value
- float value to compare against.cmp_op
- The comparison operator to use: QueryBuilder.EQUAL, ...public void addWhere(RDBColumn column, java.math.BigDecimal value, java.lang.String cmp_op)
column
- A column (field) name to use as a search constraint.value
- BigDecimal value to compare against.cmp_op
- The comparison operator to use: QueryBuilder.EQUAL, ...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, boolean value, java.lang.String cmp_op)
column
- A column (field) name to use as a search constraint.value
- boolean 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 static java.lang.String stringReplace(java.lang.String s, java.lang.String find, java.lang.String replace)
s
- the original string.find
- the substring to replace.replace
- the replacement string.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.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 int 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 int value to search for.cmp_op
- The comparison operator to use: QueryBuilder.EQUAL, ...public void addWhereClause(java.lang.String column, long value)
column
- The column (field) name to use as a search constraint.value
- The long value to search for.public void addWhereClause(java.lang.String column, long value, java.lang.String cmp_op)
column
- The column (field) name to use as a search constraint.value
- The long 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 addWhereClause(java.lang.String column, boolean 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 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.Object[] values) throws QueryException
field
- PersonDO.Name in the example abovevalues
- array of Objects containing values for IN clausepublic java.lang.String getSQL()
public void applyParameters(java.sql.PreparedStatement ps, int paramCount) throws java.sql.SQLException
public void setMaxRows(int x)
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 setStringMatchDetails(java.lang.String match_keyword, java.lang.String wildcard)
match_keyword
- Whether the DB can use "MATCHES" or "LIKE"wildcard
- The wildcard character for string searchespublic void addWhereClause(java.lang.String column, java.sql.Date date, 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 date, java.lang.String cmp_op)
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 orderpublic void setDatabaseVendor(java.lang.String vendor)
public static boolean compare(double a, double b, java.lang.String cmp_op) throws QueryException
a
- the DO member valueb
- the value to compare againstcompare( Object a, Object b, String cmp_op )
public static boolean compare(boolean a, boolean b, java.lang.String cmp_op) throws QueryException
a
- the DO member valueb
- the value to compare againstcompare( Object a, Object b, String cmp_op )
public static boolean compare(java.lang.Object a, java.lang.Object b, java.lang.String cmp_op) throws QueryException
a
- the DO member valueb
- the value to compare against
|
Enhydra 3.1 API | ||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |