|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.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 explicitly 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. |
Field Summary | |
---|---|
protected static org.slf4j.Logger |
log
|
protected ResultSet |
rset
|
Constructor Summary | |
---|---|
DBReader()
Constructs an empty DBRecordSet object. |
Method Summary | ||
---|---|---|
int |
addColumnDesc(Element parent)
Moves the cursor down one row from its current position. |
|
int |
addRows(Element parent)
Adds all children to a parent. |
|
int |
addRowValues(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. A reader must always be closed immediately after using it. |
|
|
getBeanList(C c,
Class<T> t,
int maxCount)
Returns the result of a query as a list of objects restricted to a maximum number of objects (unless maxCount is -1). |
|
|
getBeanList(Class<T> t)
Returns the result of a query as a list of objects. |
|
|
getBeanList(Class<T> t,
int maxItems)
Returns the result of a query as a list of objects. |
|
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(String column)
Returns the index value by a specified column name. |
|
void |
getRecordData(DBCommandExpr cmd,
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() |
|
boolean |
getScrollable()
|
|
Object |
getValue(int index)
Returns a data value identified by the column index. |
|
protected DBXmlDictionary |
getXmlDictionary()
returns the DBXmlDictionary that should used to generate XMLDocuments |
|
Document |
getXmlDocument()
Returns a XML document with the field description an values of this record. |
|
void |
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()
Checks if the rowset is open |
|
Iterator<DBRecordData> |
iterator()
Returns an row iterator for this reader. |
|
Iterator<DBRecordData> |
iterator(int maxCount)
Returns an row iterator for this reader. There can only be one iterator at a time. |
|
boolean |
moveNext()
Moves the cursor down one row from its current position. |
|
void |
open(DBCommandExpr cmd,
boolean scrollable,
Connection conn)
Opens the reader by executing the given SQL command. After the reader is open, the reader's position is before the first record. Use moveNext or iterator() to step through the rows. Data of the current row can be accessed through the functions on the RecordData interface. |
|
void |
open(DBCommandExpr cmd,
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, getBeanProperty, getBoolean, getBoolean, getDateTime, getDateTime, getDecimal, getDecimal, getDouble, getDouble, getInt, getInt, getLong, getLong, getString, getString, getValue, isNull |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
protected static final org.slf4j.Logger log
protected ResultSet rset
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(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 Object getValue(int index)
getValue
in interface RecordData
getValue
in class DBRecordData
index
- index of the column
public boolean isOpen()
public void open(DBCommandExpr cmd, boolean scrollable, 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 final void open(DBCommandExpr cmd, Connection conn)
see open(DBCommandExpr, boolean, Connection)
cmd
- the SQL-Command with cmd.getSelect()conn
- a valid JDBC connection.public void getRecordData(DBCommandExpr cmd, 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)
count
- the number of rows to skip
public boolean moveNext()
public Iterator<DBRecordData> iterator(int maxCount)
maxCount
- the maximum number of item that should be returned by this iterator
public final Iterator<DBRecordData> iterator()
Returns an row iterator for this reader. There can only be one iterator at a time.
public void 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 initializepublic <C extends Collection<T>,T> C getBeanList(C c, Class<T> t, int maxCount)
c
- the collection to add the objects tot
- the class type of the objects in the listmaxCount
- the maximum number of objects
public final <T> ArrayList<T> getBeanList(Class<T> t, int maxItems)
t
- the class type of the objects in the listmaxItems
- the maximum number of objects
public final <T> ArrayList<T> getBeanList(Class<T> t)
t
- the class type of the objects in the list
public int addColumnDesc(Element parent)
addColumnDesc
in class DBRecordData
public int addRowValues(Element parent)
addRowValues
in class DBRecordData
parent
- the parent element below which to search the child
public int addRows(Element parent)
parent
- the parent element below which to search the child
protected DBXmlDictionary getXmlDictionary()
public 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 |