org.apache.cayenne.access.jdbc
Class JDBCResultIterator<T>

java.lang.Object
  extended by org.apache.cayenne.access.jdbc.JDBCResultIterator<T>
All Implemented Interfaces:
Iterable<T>, ResultIterator<T>

public class JDBCResultIterator<T>
extends Object
implements ResultIterator<T>

A ResultIterator over the underlying JDBC ResultSet.

Since:
1.2

Field Summary
protected  boolean closed
           
protected  boolean closingConnection
           
protected  Connection connection
           
protected  boolean nextRow
           
protected  QueryMetadata queryMetadata
           
protected  ResultSet resultSet
           
protected  RowDescriptor rowDescriptor
           
protected  Statement statement
           
 
Constructor Summary
JDBCResultIterator(Connection connection, Statement statement, ResultSet resultSet, RowDescriptor descriptor, QueryMetadata queryMetadata)
          Creates new JDBCResultIterator that reads from provided ResultSet.
 
Method Summary
 List<T> allRows()
          Returns all yet unread rows from ResultSet without closing it.
protected  void checkNextRow()
          Moves internal ResultSet cursor position down one row.
 void close()
          Closes ResultIterator and associated ResultSet.
 RowDescriptor getRowDescriptor()
           
 boolean hasNextRow()
          Returns true if there is at least one more record that can be read from the iterator.
 boolean isClosingConnection()
          Returns true if this iterator is responsible for closing its connection, otherwise a user of the iterator must close the connection after closing the iterator.
 Iterator<T> iterator()
           
 T nextRow()
          Returns the next result row that is, depending on the query, may be a scalar value, a DataRow, or an Object[] array containing a mix of scalars and DataRows.
 void setClosingConnection(boolean flag)
          Sets the closingConnection property.
 void skipRow()
          Goes past current row.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

connection

protected Connection connection

statement

protected Statement statement

resultSet

protected ResultSet resultSet

rowDescriptor

protected RowDescriptor rowDescriptor

queryMetadata

protected QueryMetadata queryMetadata

closingConnection

protected boolean closingConnection

closed

protected boolean closed

nextRow

protected boolean nextRow
Constructor Detail

JDBCResultIterator

public JDBCResultIterator(Connection connection,
                          Statement statement,
                          ResultSet resultSet,
                          RowDescriptor descriptor,
                          QueryMetadata queryMetadata)
                   throws CayenneException
Creates new JDBCResultIterator that reads from provided ResultSet.

Throws:
CayenneException
Since:
3.0
Method Detail

iterator

public Iterator<T> iterator()
Specified by:
iterator in interface Iterable<T>
Since:
3.2

allRows

public List<T> allRows()
Description copied from interface: ResultIterator
Returns all yet unread rows from ResultSet without closing it.

Specified by:
allRows in interface ResultIterator<T>
Since:
3.0

hasNextRow

public boolean hasNextRow()
Returns true if there is at least one more record that can be read from the iterator.

Specified by:
hasNextRow in interface ResultIterator<T>

nextRow

public T nextRow()
Description copied from interface: ResultIterator
Returns the next result row that is, depending on the query, may be a scalar value, a DataRow, or an Object[] array containing a mix of scalars and DataRows.

Specified by:
nextRow in interface ResultIterator<T>
Since:
3.0

skipRow

public void skipRow()
Description copied from interface: ResultIterator
Goes past current row. If the row is not needed, this may save some time on data conversion.

Specified by:
skipRow in interface ResultIterator<T>
Since:
3.0

close

public void close()
           throws NoSuchElementException
Closes ResultIterator and associated ResultSet. This method must be called explicitly when the user is finished processing the records. Otherwise unused database resources will not be released properly.

Specified by:
close in interface ResultIterator<T>
Throws:
NoSuchElementException

checkNextRow

protected void checkNextRow()
Moves internal ResultSet cursor position down one row. Checks if the next row is available.


isClosingConnection

public boolean isClosingConnection()
Returns true if this iterator is responsible for closing its connection, otherwise a user of the iterator must close the connection after closing the iterator.


setClosingConnection

public void setClosingConnection(boolean flag)
Sets the closingConnection property.


getRowDescriptor

public RowDescriptor getRowDescriptor()


Copyright © 2001-2013 Apache Cayenne. All Rights Reserved.