Enhydra 3.1 API

com.lutris.dods.builder.generator.query
Class QueryBuilder

java.lang.Object
  |
  +--com.lutris.dods.builder.generator.query.QueryBuilder

public class QueryBuilder
extends java.lang.Object
implements Query

	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();

 

Version:
$Revision: 1.6.2.1.2.1 $

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

EQUAL

public static final java.lang.String EQUAL

NOT_EQUAL

public static final java.lang.String NOT_EQUAL

LESS_THAN

public static final java.lang.String LESS_THAN

LESS_THAN_OR_EQUAL

public static final java.lang.String LESS_THAN_OR_EQUAL

GREATER_THAN

public static final java.lang.String GREATER_THAN

GREATER_THAN_OR_EQUAL

public static final java.lang.String GREATER_THAN_OR_EQUAL

IS_NULL

public static final java.lang.String IS_NULL

IS_NOT_NULL

public static final java.lang.String IS_NOT_NULL

CASE_SENSITIVE_CONTAINS

public static final java.lang.String CASE_SENSITIVE_CONTAINS

CASE_INSENSITIVE_CONTAINS

public static final java.lang.String CASE_INSENSITIVE_CONTAINS

CASE_SENSITIVE_STARTS_WITH

public static final java.lang.String CASE_SENSITIVE_STARTS_WITH

CASE_INSENSITIVE_STARTS_WITH

public static final java.lang.String CASE_INSENSITIVE_STARTS_WITH

CASE_SENSITIVE_ENDS_WITH

public static final java.lang.String CASE_SENSITIVE_ENDS_WITH

CASE_INSENSITIVE_ENDS_WITH

public static final java.lang.String CASE_INSENSITIVE_ENDS_WITH

CASE_INSENSITIVE_EQUAL

public static final java.lang.String CASE_INSENSITIVE_EQUAL

NULL_OK

public static final boolean NULL_OK
Deprecated. Use addWhere() methods instead of addWhereClause() methods.

Null-acceptability indicator passed as 3rd arg to addWhereClause( String )

NOT_NULL

public static final boolean NOT_NULL
Deprecated. Use addWhere() methods instead of addWhereClause() methods.

Null-acceptability indicator passed as 3rd arg to addWhereClause( String )

EXACT_MATCH

public static final boolean EXACT_MATCH
Deprecated. Use addWhere() methods instead of addWhereClause() methods.

Wild-card indicator passed as 4th arg to addWhereClause( String )

NOT_EXACT

public static final boolean NOT_EXACT
Deprecated. Use addWhere() methods instead of addWhereClause() methods.

Wild-card indicator passed as 4th arg to addWhereClause( String )

DEFAULT_MATCHES_KEYWORD

public static final java.lang.String DEFAULT_MATCHES_KEYWORD

DEFAULT_WILDCARD

public static final java.lang.String DEFAULT_WILDCARD
Constructor Detail

QueryBuilder

public QueryBuilder(java.util.Vector fields)
Construct a QueryBuilder object that will return specified fields of a table. Style 2 (see above.)
Parameters:
fields - Vector of RDBColumn objects, one for each column to be returned. Fields can refer to different tables.

QueryBuilder

public QueryBuilder(RDBColumn[] fields)
Construct a QueryBuilder object that will return specified fields of a table. Style 2 (see above.)
Parameters:
fields - array of RDBColumn objects, one for each column to be returned. Fields can refer to different tables.

QueryBuilder

public QueryBuilder()
Construct a QueryBuilder object. When no fields are specified in the constructor, you must use calls to select() to specify the RDBColumns that will be returned. This can be more convenient than constructing the Vector before calling the QueryBuilder(Vector) constructor. Style 2 (see above.)

QueryBuilder

public QueryBuilder(java.lang.String tableName)
Construct a QueryBuilder object that will return all fields of a table. Style 1 (see above.) WARNING: QueryBuilder objects created with this constructor cannot be used with the getNextRow() method.
Parameters:
table - Name of the table on which to perform the SQL 'select'.
See Also:
getNextRow

QueryBuilder

public QueryBuilder(java.lang.String tableName,
                    java.lang.String fieldList)
Construct a QueryBuilder object that will return specified fields of a table. Style 1 (see above.)
Parameters:
table - Name of the table on which to perform the SQL 'select'.
fieldList - Comma-separated string of field names to retrieve.
Method Detail

select

public void select(RDBColumn field)
Add a field to be returned by this QueryBuilder. Style 2 (see above.)
Parameters:
field - RDBColumn object to be returned. Fields can refer to different tables.

getRows

public RDBRow[] getRows()
                 throws QueryException
Returns an array of RDBRow objects.
Returns:
array of RDBRow objects.
Throws:
ATException - If the data is not accessible
BusinessRuleException - If x is invalid.
See Also:
getNextRow

getNextRow

public RDBRow getNextRow()
                  throws QueryException

next

public java.lang.Object next(java.sql.ResultSet rs)
                      throws java.sql.SQLException,
                             ObjectIdException
WARNING! This method is disabled and should never be called. It's implementation is forced by the Query interface. Use getNextRow instead().
Specified by:
next in interface Query
Tags copied from interface: Query
Parameters:
rs - JDBC result set from which the next object will be instantiated.
Throws:
java.sql.SQLException - If a database access error occurs.
ObjectIdException - If ObjectId was not found.

addWhereOr

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().

 

addWhereOpenParen

public void addWhereOpenParen()
Specify that the next conditional expression (where-clause) should be preceded by '('. Trailing OPEN_PARENs are removed by prepareStatement().

addWhereCloseParen

public void addWhereCloseParen()
Close a previous addWhereOpenParen. Automatically disallows bad sequences like 'OR )' and '( )'.

addWhere

public void addWhere(RDBColumn column,
                     GenericDO value,
                     java.lang.String cmp_op)
Add a where-clause that compares a column against a String.
Parameters:
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, ...

addWhere

public void addWhere(RDBColumn column,
                     byte[] value,
                     java.lang.String cmp_op)
Add a where-clause that compares a column against a byte array.
Parameters:
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, ...

addWhere

public void addWhere(RDBColumn column,
                     java.sql.Time value,
                     java.lang.String cmp_op)
Add a where-clause that compares a column against a String.
Parameters:
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, ...

addWhere

public void addWhere(RDBColumn column,
                     java.sql.Timestamp value,
                     java.lang.String cmp_op)
Add a where-clause that compares a column against a String.
Parameters:
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, ...

addWhere

public void addWhere(RDBColumn column,
                     long value,
                     java.lang.String cmp_op)
Add a where-clause that compares a column against a String.
Parameters:
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, ...

addWhere

public void addWhere(RDBColumn column,
                     double value,
                     java.lang.String cmp_op)
Add a where-clause that compares a column against a String.
Parameters:
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, ...

addWhere

public void addWhere(RDBColumn column,
                     float value,
                     java.lang.String cmp_op)
Add a where-clause that compares a column against a String.
Parameters:
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, ...

addWhere

public void addWhere(RDBColumn column,
                     java.math.BigDecimal value,
                     java.lang.String cmp_op)
Add a where-clause that compares a column against a String.
Parameters:
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, ...

addWhere

public void addWhere(RDBColumn column,
                     int value,
                     java.lang.String cmp_op)
Add a where-clause that compares a column against a String.
Parameters:
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, ...

addWhere

public void addWhere(RDBColumn column,
                     boolean value,
                     java.lang.String cmp_op)
Add a where-clause that compares a column against a String.
Parameters:
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, ...

addWhere

public void addWhere(RDBColumn column,
                     int value)
Add a where-clause that tests if a column is equal to a given String.
Parameters:
column - A column (field) name to use as a search constraint.
value - int value to compare against.

addWhereLower

public void addWhereLower(RDBColumn column,
                          java.lang.String value,
                          java.lang.String cmp_op)
Add a where-clause that compares a column against a String.
Parameters:
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, ...

addWhere

public void addWhere(RDBColumn column,
                     java.lang.String value,
                     java.lang.String cmp_op)
Add a where-clause that compares a column against a String.
Parameters:
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, ...

addWhere

public void addWhere(RDBColumn column,
                     java.lang.String value)
Add a where-clause that tests if a column is equal to a given String.
Parameters:
column - A column (field) name to use as a search constraint.
value - String value to compare against.

addWhere

public void addWhere(RDBColumn column,
                     java.sql.Date value,
                     java.lang.String cmp_op)
Add a where-clause that compares a column against a Date.
Parameters:
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, ...

addWhere

public void addWhere(RDBColumn column1,
                     RDBColumn column2,
                     java.lang.String cmp_op)
Add a where-clause that compares a column against another column.
Parameters:
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, ...

addWhere

public void addWhere(RDBColumn column1,
                     RDBColumn column2)
Add a where-clause that tests if a column is equal to another column.
Parameters:
column1 - A column (field) name to use as a search constraint.
column2 - A column (field) name to use as a search constraint.

addWhereRightOuter

public 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.
Parameters:
column1 - A column (field) name to use as a search constraint.
column2 - A column (field) name to use as a search constraint.

addWhereLeftOuter

public 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.
Parameters:
column1 - A column (field) name to use as a search constraint.
column2 - A column (field) name to use as a search constraint.

addTwoColumnWhereClause

public 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.

 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.
 
Parameters:
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, ...

addTwoColumnWhereClause

public void addTwoColumnWhereClause(java.lang.String column1,
                                    java.lang.String column2)
Deprecated. Use addWhere(RDBColumn c1, RDBColumn c1) instead.

 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.

 
Parameters:
column1 - A column (field) name to use as a search constraint.
column2 - Another column to compare against.

stringReplace

public static java.lang.String stringReplace(java.lang.String s,
                                             java.lang.String find,
                                             java.lang.String replace)
Replace a substring with another string.
Parameters:
s - the original string.
find - the substring to replace.
replace - the replacement string.
Returns:
the resulting string after replacement. Returns null if any params are null. Returns original string if 'find' not found.

addWhereClause

public 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.

Add a where-clause that compares a column against a string value to the SQL command.
Parameters:
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, ...

addWhereClause

public boolean addWhereClause(java.lang.String column,
                              java.math.BigDecimal value,
                              boolean nullOk)
Deprecated. Use addWhere(RDBColumn c1, BigDecimal value, String cmp_op) instead.

Add a where-clause to the SQL command.
Parameters:
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.
Returns:
Whether a where-clause was generated. false if value==null and nullOk==false.

addWhereClause

public void addWhereClause(java.lang.String column,
                           int value)
Deprecated. Use addWhere(RDBColumn column, int value) instead.

Add a where-clause to the SQL command.
Parameters:
column - The column (field) name to use as a search constraint.
value - The int value to search for.

addWhereClause

public void addWhereClause(java.lang.String column,
                           int value,
                           java.lang.String cmp_op)
Deprecated. Use addWhere(RDBColumn column, int value, String cmp_op ) instead.

Add a where-clause to the SQL command.
Parameters:
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, ...

addWhereClause

public void addWhereClause(java.lang.String column,
                           long value)
Deprecated. Use addWhere(RDBColumn column, long value) instead.

Add a where-clause to the SQL command.
Parameters:
column - The column (field) name to use as a search constraint.
value - The long value to search for.

addWhereClause

public void addWhereClause(java.lang.String column,
                           long value,
                           java.lang.String cmp_op)
Deprecated. Use addWhere(RDBColumn column, long value, String cmp_op ) instead.

Add a where-clause to the SQL command.
Parameters:
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, ...

addWhereClause

public void addWhereClause(java.lang.String column,
                           float value)
Deprecated. Use addWhere(RDBColumn column, float value) instead.

Add a where-clause to the SQL command.
Parameters:
column - The column (field) name to use as a search constraint.
value - The value to search for.

addWhereClause

public void addWhereClause(java.lang.String column,
                           float value,
                           java.lang.String cmp_op)
Deprecated. Use addWhere(RDBColumn column, float value, String cmp_op ) instead.

Add a where-clause to the SQL command.
Parameters:
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, ...

addWhereClause

public void addWhereClause(java.lang.String column,
                           double value)
Deprecated. Use addWhere(RDBColumn column, double value) instead.

Add a where-clause to the SQL command.
Parameters:
column - The column (field) name to use as a search constraint.
value - The value to search for.

addWhereClause

public void addWhereClause(java.lang.String column,
                           double value,
                           java.lang.String cmp_op)
Deprecated. Use addWhere(RDBColumn column, double value, String cmp_op ) instead.

Add a where-clause to the SQL command.
Parameters:
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, ...

addWhereClause

public void addWhereClause(java.lang.String column,
                           boolean value)
Deprecated. Use addWhere(RDBColumn column, boolean value) instead.

Add a where-clause to the SQL command.
Parameters:
column - The column (field) name to use as a search constraint.
value - The value to search for.

addWhereClause

public void addWhereClause(java.lang.String column,
                           boolean value,
                           java.lang.String cmp_op)
Deprecated. Use addWhere(RDBColumn column, boolean value, String cmp_op ) instead.

Add a where-clause to the SQL command.
Parameters:
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, ...

addEndClause

public void addEndClause(java.lang.String clause)
Add a trailing clause (order by, group by, etc.) to the SQL command.
Parameters:
clause - The clause to append to the SQL command.

add

public void add(java.lang.String str)
Deprecated. Use addEndClause() instead.

Append to the 'select' portion of the SQL command.
Parameters:
str - The string to append to the SQL command.

debug

public void debug()
Sets debug flag to print the SQL statement just before its execution. Affects just this instance of QueryBuilder.

debugAll

public static void debugAll()
Sets debug flag to print the SQL statement just before its execution. Affects all instances of QueryBuilder.

distinct

public void distinct()

addWhere

public void addWhere(java.lang.String fullClause)

addWhereIn

public void addWhereIn(RDBColumn field,
                       QueryBuilder qb)
                throws QueryException

addWhereIn

public void addWhereIn(RDBColumn field,
                       java.lang.Object[] values)
                throws QueryException
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 );
Parameters:
field - PersonDO.Name in the example above
values - array of Objects containing values for IN clause
Throws:
QueryException - if values is null or empty

getSQL

public java.lang.String getSQL()

applyParameters

public void applyParameters(java.sql.PreparedStatement ps,
                            int paramCount)
                     throws java.sql.SQLException

setMaxRows

public void setMaxRows(int x)

getStatement

public java.sql.PreparedStatement getStatement()
Return the JDBC PreparedStatement generated by prepareStatement().
Returns:
The JDBC PreparedStatement.

executeQuery

public java.sql.ResultSet executeQuery(DBConnection conn)
                                throws java.sql.SQLException
Execute the PreparedStatement and return a JDBC ResultSet.
Specified by:
executeQuery in interface Query
Parameters:
conn - The DBConnection object to use for the search.
Returns:
The ResultSet object generated by JDBC for the search.

reset

public void reset()
Reset the where-clause information. The same fields specified in the QueryBuilder constructor, can be retrieved for a different set of where-clauses.

close

public void close()

setStringMatchDetails

public 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. Code added by Chris Ryan (cryan@plugged.net.au)
Parameters:
match_keyword - Whether the DB can use "MATCHES" or "LIKE"
wildcard - The wildcard character for string searches

addWhereClause

public 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.

Add a where-clause that compares a column against a date value to the SQL command. Contributed by: Victor Brilon
Parameters:
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, ...

addWhereClause

public void addWhereClause(java.lang.String column,
                           java.sql.Timestamp date,
                           java.lang.String cmp_op)

addWhereClause

public void addWhereClause(java.lang.String column,
                           java.sql.Time date,
                           java.lang.String cmp_op)

addOrderByColumn

public void addOrderByColumn(java.lang.String column,
                             java.lang.String direction)
Add another field to the ORDER BY list. NOTE: is used by SourceGenerator_Query and writeMemberStuff.template. This method added by Chris Ryan (cryan@plugged.net.au) to allow easier access to the ORDER BY part of the SQL query.
Parameters:
column - The column to order by
direction - ASCENDING or DESCENDING order

addOrderByColumn

public void addOrderByColumn(RDBColumn column,
                             java.lang.String direction)
Add another field to the ORDER BY list. NOTE: is used by SourceGenerator_Query and writeMemberStuff.template. This method added by Chris Ryan (cryan@plugged.net.au) to allow easier access to the ORDER BY part of the SQL query.
Parameters:
column - The column to order by
direction - ASCENDING or DESCENDING order

setDatabaseVendor

public void setDatabaseVendor(java.lang.String vendor)

compare

public static boolean compare(double a,
                              double b,
                              java.lang.String cmp_op)
                       throws QueryException
Wrapper for compare() method that takes Objects for arguments. This method takes doubles, and so will handle shorts, ints, longs, floats, doubles, but not booleans.
Parameters:
a - the DO member value
b - the value to compare against
Returns:
true if a compares to b according to cmp_op
Throws:
QueryException - if cmp_op is not a valid comparison operator.
See Also:
compare( Object a, Object b, String cmp_op )

compare

public static boolean compare(boolean a,
                              boolean b,
                              java.lang.String cmp_op)
                       throws QueryException
Wrapper for compare() method that takes Objects for arguments. This method takes booleans.
Parameters:
a - the DO member value
b - the value to compare against
Returns:
true if a compares to b according to cmp_op
Throws:
QueryException - if cmp_op is not a valid comparison operator.
See Also:
compare( Object a, Object b, String cmp_op )

compare

public static boolean compare(java.lang.Object a,
                              java.lang.Object b,
                              java.lang.String cmp_op)
                       throws QueryException
Compare two values according to a QueryBuilder comparison operator. This method has some general applicability. It is handy for writing sorting algorithms, etc. The Query classes generated by DODS use this method to prune undesired values from the cache held by a DO class.
Parameters:
a - the DO member value
b - the value to compare against
Returns:
true if a compares to b according to cmp_op
Throws:
QueryException - if cmp_op is not a valid comparison operator.

Enhydra 3.1 API