|
PSE 2000 Group 4 | |||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
jobmatch.data.PersonQuery
PersonQuery is used to query the Person table in the database.
It returns objects of type PersonDO.
General usage:
In DODS: Create a Data Object named "Dog", and create an Attribute named "Name", and set that Attribute to "Can be queried." DODS will then generate the method DogQuery.setQueryName().
In your Business Layer, prepare the query:
DogQuery dq = new DogQuery();
dq.setQueryName("Rex")
if ( Rex is a reserved name )
dq.requireUniqueInstance();
Then, get the query results one of two ways:
#1:
String names = "";
DogBDO[] dogs = dq.getBDOArray();
for ( int i = 0; i < dogs.length; i++ ) {
names += dogs[i].getName() + " ";
}
or #2:
String names = "";
DogBDO dog;
while ( null != ( dog = dq.getNextBDO() ) ) {
names += dog.getName() + " ";
}
Note: Methods getDOArray() and getNextDO()
do exist, but they are not generally used
in the Business or Presentation layers of an application.
All access to the Data Layer (DO classes) should occur via
the Business Layer (BDO classes).
Only the Business Layer (BDO classes and classes extending them)
should need to manipulate the Data Layer (DO classes).
See also the comments in the BDO constructors.
Note: If requireUniqueInstance() was called,
then getBDOArray() or getNextBDO()
will throw an exception if more than one "Rex" was found.
Note: Results of the query will come from the Data Object cache if:
- The cache is available.
- Matches were found in the cache.
- No other tables (Data Objects of other types) were involved
in the query.
This can happen if you extend the DogQuery class
and you make calls to the QueryBuilder object
to add SQL involving other tables.
If any of these conditions is not true,
then any results from the query will come from the database.
To reuse the query object, call:
dq.reset();
| Constructor Summary | |
PersonQuery()
Public constructor. |
|
| Method Summary | |
void |
addOrderByAdress()
Add Adress to the ORDER BY clause. |
void |
addOrderByAdress(boolean direction_flag)
Add Adress to the ORDER BY clause. |
void |
addOrderByBirthdate()
Add Birthdate to the ORDER BY clause. |
void |
addOrderByBirthdate(boolean direction_flag)
Add Birthdate to the ORDER BY clause. |
void |
addOrderByFname()
Add Fname to the ORDER BY clause. |
void |
addOrderByFname(boolean direction_flag)
Add Fname to the ORDER BY clause. |
void |
addOrderByLname()
Add Lname to the ORDER BY clause. |
void |
addOrderByLname(boolean direction_flag)
Add Lname to the ORDER BY clause. |
void |
addOrderByNatel()
Add Natel to the ORDER BY clause. |
void |
addOrderByNatel(boolean direction_flag)
Add Natel to the ORDER BY clause. |
void |
addOrderByNationality()
Add Nationality to the ORDER BY clause. |
void |
addOrderByNationality(boolean direction_flag)
Add Nationality to the ORDER BY clause. |
void |
addOrderByPhone()
Add Phone to the ORDER BY clause. |
void |
addOrderByPhone(boolean direction_flag)
Add Phone to the ORDER BY clause. |
void |
addOrderByResidence()
Add Residence to the ORDER BY clause. |
void |
addOrderByResidence(boolean direction_flag)
Add Residence to the ORDER BY clause. |
void |
addOrderBySex()
Add Sex to the ORDER BY clause. |
void |
addOrderBySex(boolean direction_flag)
Add Sex to the ORDER BY clause. |
void |
closeParen()
Place a closing parenthesis in the WHERE clause. |
ResultSet |
executeQuery(jobmatch.data.DBConnection conn)
Method to query objects from the database. |
PersonBDO[] |
getBDOArray()
Return array of BDOs constructed from ResultSet returned by query. |
PersonDO[] |
getDOArray()
Return array of DOs constructed from ResultSet returned by query. |
PersonBDO |
getNextBDO()
Return successive BDOs from array built from ResultSet returned by query. |
PersonDO |
getNextDO()
Return successive DOs from array built from ResultSet returned by query. |
jobmatch.data.QueryBuilder |
getQueryBuilder()
Returns the QueryBuilder that this PersonQuery
uses to construct and execute database queries. |
void |
hitDatabase()
|
Object |
next(ResultSet rs)
WARNING! This method is disabled. |
void |
openParen()
Place an open parenthesis in the WHERE clause. |
void |
or()
Insert an OR between WHERE clauses. |
void |
requireUniqueInstance()
Set "unique instance" assertion bit. |
void |
reset()
Reset the query parameters. |
void |
setQueryAdress(AdressDO x)
Set the Adress to query |
void |
setQueryAdress(AdressDO x,
boolean exact)
Set the Adress to query. |
void |
setQueryBirthdate(Date x)
Set the Birthdate to query |
void |
setQueryBirthdate(Date x,
boolean exact)
Set the Birthdate to query. |
void |
setQueryFname(String x)
Set the Fname to query |
void |
setQueryFname(String x,
boolean exact)
Set the Fname to query. |
void |
setQueryHandle(String handle)
Set the object handle to query. |
void |
setQueryLname(String x)
Set the Lname to query |
void |
setQueryLname(String x,
boolean exact)
Set the Lname to query. |
void |
setQueryNatel(String x)
Set the Natel to query |
void |
setQueryNatel(String x,
boolean exact)
Set the Natel to query. |
void |
setQueryNationality(CountryDO x)
Set the Nationality to query |
void |
setQueryNationality(CountryDO x,
boolean exact)
Set the Nationality to query. |
void |
setQueryOId(jobmatch.data.ObjectId oid)
Set the OID to query. |
void |
setQueryPhone(String x)
Set the Phone to query |
void |
setQueryPhone(String x,
boolean exact)
Set the Phone to query. |
void |
setQueryResidence(String x)
Set the Residence to query |
void |
setQueryResidence(String x,
boolean exact)
Set the Residence to query. |
void |
setQuerySex(String x)
Set the Sex to query |
void |
setQuerySex(String x,
boolean exact)
Set the Sex to query. |
| Constructor Detail |
public PersonQuery()
| Method Detail |
public void hitDatabase()
public PersonDO[] getDOArray()
throws jobmatch.data.DataObjectException,
jobmatch.data.NonUniqueQueryException
public PersonDO getNextDO()
throws jobmatch.data.DataObjectException,
jobmatch.data.NonUniqueQueryException
public PersonBDO[] getBDOArray()
throws jobmatch.data.DataObjectException,
jobmatch.data.NonUniqueQueryException
public PersonBDO getNextBDO()
throws jobmatch.data.DataObjectException,
jobmatch.data.NonUniqueQueryException
public void setQueryOId(jobmatch.data.ObjectId oid)
Person
has a column named "oid".
This method is called from the DO classes to retrieve an object by id.oid - The object id to query.
public void setQueryHandle(String handle)
throws jobmatch.data.ObjectIdException
handle - The string version of the id to query.public void requireUniqueInstance()
public void reset()
public ResultSet executeQuery(jobmatch.data.DBConnection conn)
throws SQLException
conn - Handle to database connection.
public Object next(ResultSet rs)
throws SQLException,
jobmatch.data.ObjectIdException
rs - JDBC result set from which the next object
will be instantiated.
public void setQueryAdress(AdressDO x,
boolean exact)
throws jobmatch.data.DataObjectException,
jobmatch.data.QueryException
x - The Adress of the Person to query.exact - to use matches or not
public void setQueryAdress(AdressDO x)
throws jobmatch.data.DataObjectException,
jobmatch.data.QueryException
x - The Adress of the Person to query.public void addOrderByAdress(boolean direction_flag)
direction_flag - True for ascending order, false for descendingpublic void addOrderByAdress()
public void setQueryFname(String x,
boolean exact)
throws jobmatch.data.DataObjectException,
jobmatch.data.QueryException
x - The Fname of the Person to query.exact - to use matches or not
public void setQueryFname(String x)
throws jobmatch.data.DataObjectException,
jobmatch.data.QueryException
x - The Fname of the Person to query.public void addOrderByFname(boolean direction_flag)
direction_flag - True for ascending order, false for descendingpublic void addOrderByFname()
public void setQueryLname(String x,
boolean exact)
throws jobmatch.data.DataObjectException,
jobmatch.data.QueryException
x - The Lname of the Person to query.exact - to use matches or not
public void setQueryLname(String x)
throws jobmatch.data.DataObjectException,
jobmatch.data.QueryException
x - The Lname of the Person to query.public void addOrderByLname(boolean direction_flag)
direction_flag - True for ascending order, false for descendingpublic void addOrderByLname()
public void setQueryNatel(String x,
boolean exact)
throws jobmatch.data.DataObjectException,
jobmatch.data.QueryException
x - The Natel of the Person to query.exact - to use matches or not
public void setQueryNatel(String x)
throws jobmatch.data.DataObjectException,
jobmatch.data.QueryException
x - The Natel of the Person to query.public void addOrderByNatel(boolean direction_flag)
direction_flag - True for ascending order, false for descendingpublic void addOrderByNatel()
public void setQueryPhone(String x,
boolean exact)
throws jobmatch.data.DataObjectException,
jobmatch.data.QueryException
x - The Phone of the Person to query.exact - to use matches or not
public void setQueryPhone(String x)
throws jobmatch.data.DataObjectException,
jobmatch.data.QueryException
x - The Phone of the Person to query.public void addOrderByPhone(boolean direction_flag)
direction_flag - True for ascending order, false for descendingpublic void addOrderByPhone()
public void setQueryResidence(String x,
boolean exact)
throws jobmatch.data.DataObjectException,
jobmatch.data.QueryException
x - The Residence of the Person to query.exact - to use matches or not
public void setQueryResidence(String x)
throws jobmatch.data.DataObjectException,
jobmatch.data.QueryException
x - The Residence of the Person to query.public void addOrderByResidence(boolean direction_flag)
direction_flag - True for ascending order, false for descendingpublic void addOrderByResidence()
public void setQuerySex(String x,
boolean exact)
throws jobmatch.data.DataObjectException,
jobmatch.data.QueryException
x - The Sex of the Person to query.exact - to use matches or not
public void setQuerySex(String x)
throws jobmatch.data.DataObjectException,
jobmatch.data.QueryException
x - The Sex of the Person to query.public void addOrderBySex(boolean direction_flag)
direction_flag - True for ascending order, false for descendingpublic void addOrderBySex()
public void setQueryBirthdate(Date x,
boolean exact)
throws jobmatch.data.DataObjectException,
jobmatch.data.QueryException
x - The Birthdate of the Person to query.exact - to use matches or not
public void setQueryBirthdate(Date x)
throws jobmatch.data.DataObjectException,
jobmatch.data.QueryException
x - The Birthdate of the Person to query.public void addOrderByBirthdate(boolean direction_flag)
direction_flag - True for ascending order, false for descendingpublic void addOrderByBirthdate()
public void setQueryNationality(CountryDO x,
boolean exact)
throws jobmatch.data.DataObjectException,
jobmatch.data.QueryException
x - The Nationality of the Person to query.exact - to use matches or not
public void setQueryNationality(CountryDO x)
throws jobmatch.data.DataObjectException,
jobmatch.data.QueryException
x - The Nationality of the Person to query.public void addOrderByNationality(boolean direction_flag)
direction_flag - True for ascending order, false for descendingpublic void addOrderByNationality()
public jobmatch.data.QueryBuilder getQueryBuilder()
QueryBuilder that this PersonQuery
uses to construct and execute database queries.
PersonQuery.setQueryXXX methods use
the QueryBuilder to
append SQL expressions to the "WHERE" clause to be executed.
The QueryBuilder.addEndClause method. can be used to
append freeform SQL expressions to the WHERE clause,
e.g. "ORDER BY name".
Notes regarding cache-enabled DO classes:
DO classes can be cache-enabled.
If when using a PersonQuery, the application developer
does not call getQueryBuilder,
then PersonQuery.setQueryXXX methods
simply prune the DO cache and return the remaining results.
However, a QueryBuilder builds
SELECT statements for execution by the actual database,
and never searches the built-in cache for the DO.
So, if the DO class is cache-enabled, and getQueryBuilder
is called, this PersonQuery object ignores the cache
and hits the actual database.public void or()
OR between WHERE clauses.
Example: find all the persons named Bob or Robert:
PersonQuery pq = new PersonQuery();
pq.setQueryFirstName( "Bob" );
pq.or();
pq.setQueryFirstName( "Robert" );
Note: Calls to setQueryXxx methods
are implicitly ANDed together,
so the following example will always return nothing:
PersonQuery pq = new PersonQuery();
pq.setQueryFirstName( "Bob" );
// AND automatically inserted here.
pq.setQueryFirstName( "Robert" );
public void openParen()
WHERE clause.
Example usage: find all the Bobs and Roberts who are 5 or 50 years old:
PersonQuery pq = new PersonQuery();
pq.openParen();
pq.setQueryFirstName( "Bob" );
pq.or();
pq.setQueryFirstName( "Robert" );
pq.closeParen();
// AND automatically inserted here.
pq.openParen();
pq.setQueryAge( 5 );
pq.or();
pq.setQueryAge( 50 );
pq.closeParen();
public void closeParen()
WHERE clause.openParen
|
PSE 2000 Group 4 | |||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||