|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.apache.empire.commons.ErrorObject
org.apache.empire.db.DBObject
org.apache.empire.db.DBRecordData
org.apache.empire.db.DBReader
public class DBReader
This class is used to perform database queries from a DBCommand object and access the results.
In oder to perform a query call the open() function or - for single row queries - call getRecordData();
You can iterate through the rows using moveNext() or an iterator.
However take care: A reader must always be explcitly closed using the close() method!
Otherwise you may lock the JDBC connection and run out of resources.
Use
try { ... } finally { reader.close(); }to make sure the reader is closed.
To access and work with the query result you can do one of the following:
DBRecordData
)getBeanList(Class, int)
getXmlDocument()
initRecord(DBRowSet, DBRecord)
Nested Class Summary | |
---|---|
class |
DBReader.DBReaderForwardIterator
This is an iterator for forward only resultsets. |
class |
DBReader.DBReaderIterator
|
class |
DBReader.DBReaderScrollableIterator
This is an iterator for scrolling resultsets. |
Constructor Summary | |
---|---|
DBReader()
Constructs an empty DBRecordSet object. |
Method Summary | ||
---|---|---|
boolean |
addColumnDesc(org.w3c.dom.Element parent)
Moves the cursor down one row from its current position. |
|
int |
addRows(org.w3c.dom.Element parent)
Adds all children to a parent. |
|
boolean |
addRowValues(org.w3c.dom.Element parent)
Adds all children to a parent. |
|
static void |
checkOpenResultSets()
Call this if you want to check whether there are any unclosed resultsets It logs stack traces to help find piece of code where a DBReader was opened but not closed. |
|
void |
close()
Closes the DBRecordSet object, the Statement object and detach the columns. |
|
|
getBeanList(java.lang.Class<T> c)
Returns the result of a query as a list of objects. |
|
|
getBeanList(java.lang.Class<T> c,
int maxCount)
Returns the result of a query as a list of objects resticted to a maximum number of objects (unless maxCount is -1). |
|
DBColumnExpr |
getColumnExpr(int iColumn)
Get the column Expression at position |
|
DBDatabase |
getDatabase()
Returns the current DBDatabase object. |
|
int |
getFieldCount()
returns the number of the elements of the colList array |
|
int |
getFieldIndex(ColumnExpr column)
Returns the index value by a specified DBColumnExpr object. |
|
int |
getFieldIndex(java.lang.String column)
Returns the index value by a specified column name. |
|
boolean |
getRecordData(DBCommandExpr cmd,
java.sql.Connection conn)
Opens the reader by executing the given SQL command and moves to the first row. |
|
boolean |
getScrollable()
|
|
java.lang.Object |
getValue(int index)
Returns a data value identified by the column index. |
|
org.w3c.dom.Document |
getXmlDocument()
Returns a XML document with the field descriptiona an values of this record. |
|
boolean |
initRecord(DBRowSet rowset,
DBRecord rec)
initializes a DBRecord object with the values of the current row. |
|
boolean |
isNull(int index)
Checks wehter a column value is null Unlike the base class implementation, this class directly check the value fromt the resultset. |
|
boolean |
isOpen()
returns null true if the Rowset is not null, and otherwise false |
|
java.util.Iterator<DBRecordData> |
iterator()
Returns an row iterator for this reader. |
|
java.util.Iterator<DBRecordData> |
iterator(int maxCount)
Returns an row iterator for this reader. |
|
boolean |
moveNext()
Moves the cursor down one row from its current position. |
|
boolean |
open(DBCommandExpr cmd,
boolean scrollable,
java.sql.Connection conn)
Opens the reader by executing the given SQL command. |
|
boolean |
open(DBCommandExpr cmd,
java.sql.Connection conn)
Opens the reader by executing the given SQL command. |
|
boolean |
skipRows(int count)
Moves the cursor down the given number of rows. |
Methods inherited from class org.apache.empire.db.DBRecordData |
---|
getBeanProperties, getBeanProperties, getBoolean, getBoolean, getDateTime, getDateTime, getDouble, getDouble, getInt, getInt, getLong, getLong, getString, getString, getValue, isNull |
Methods inherited from class org.apache.empire.commons.ErrorObject |
---|
clearError, getErrorMessage, getErrorParams, getErrorSource, getErrorType, getMessage, hasError, isExceptionsEnabled, setExceptionsEnabled |
Methods inherited from class java.lang.Object |
---|
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
---|
public DBReader()
Method Detail |
---|
public DBDatabase getDatabase()
getDatabase
in class DBObject
public boolean getScrollable()
public int getFieldIndex(ColumnExpr column)
getFieldIndex
in interface RecordData
getFieldIndex
in class DBRecordData
column
- the column for which to return the index
public DBColumnExpr getColumnExpr(int iColumn)
getColumnExpr
in interface RecordData
getColumnExpr
in class DBRecordData
iColumn
- field index of the column expression
public int getFieldIndex(java.lang.String column)
getFieldIndex
in interface RecordData
getFieldIndex
in class DBRecordData
column
- the column name
public boolean isNull(int index)
isNull
in interface RecordData
isNull
in class DBRecordData
index
- index of the column
public java.lang.Object getValue(int index)
getValue
in interface RecordData
getValue
in class DBRecordData
index
- index of the column
public boolean isOpen()
public boolean open(DBCommandExpr cmd, boolean scrollable, java.sql.Connection conn)
ATTENTION: After using the reader it must be closed using the close() method!
Use
try { ... } finally { reader.close(); }to make sure the reader is closed.
cmd
- the SQL-Command with cmd.getSelect()scrollable
- true if the reader should be scrollable or false if notconn
- a valid JDBC connection.
public boolean open(DBCommandExpr cmd, java.sql.Connection conn)
see open(DBCommandExpr, boolean, Connection)
cmd
- the SQL-Command with cmd.getSelect()conn
- a valid JDBC connection.
public boolean getRecordData(DBCommandExpr cmd, java.sql.Connection conn)
Opens the reader by executing the given SQL command and moves to the first row.
If true is returned data of the row can be accessed through the functions on the RecordData interface.
This function is intended for single row queries and provided for convenience.
However it behaves exacly as calling reader.open() and reader.moveNext()
ATTENTION: After using the reader it must be closed using the close() method!
Use
try { ... } finally { reader.close(); }to make sure the reader is closed.
cmd
- the SQL-Command with cmd.getSelect()conn
- a valid JDBC connection.
public void close()
close
in class DBRecordData
public boolean skipRows(int count)
public boolean moveNext()
public java.util.Iterator<DBRecordData> iterator(int maxCount)
maxCount
- the maximum number of item that shold be returned by this iterator
public final java.util.Iterator<DBRecordData> iterator()
Returns an row iterator for this reader. There can only be one iterator at a time.
public boolean initRecord(DBRowSet rowset, DBRecord rec)
initializes a DBRecord object with the values of the current row.
At least all primary key columns of the target rowset must be provided by this reader.
This function is equivalent to calling rowset.initRecord(rec, reader)
set also DBRowSet.initRecord(DBRecord, DBRecordData)
);
rowset
- the rowset to which to attachrec
- the record which to initialize
public <T> java.util.ArrayList<T> getBeanList(java.lang.Class<T> c, int maxCount)
public <T> java.util.ArrayList<T> getBeanList(java.lang.Class<T> c)
public boolean addColumnDesc(org.w3c.dom.Element parent)
addColumnDesc
in class DBRecordData
public boolean addRowValues(org.w3c.dom.Element parent)
addRowValues
in class DBRecordData
parent
- the parent element below which to search the child
public int addRows(org.w3c.dom.Element parent)
parent
- the parent element below which to search the child
public org.w3c.dom.Document getXmlDocument()
getXmlDocument
in class DBRecordData
public int getFieldCount()
getFieldCount
in interface RecordData
getFieldCount
in class DBRecordData
public static void checkOpenResultSets()
Call this if you want to check whether there are any unclosed resultsets It logs stack traces to help find piece of code where a DBReader was opened but not closed.
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |