Package org.apache.commons.dbutils

## Class ResultSetIterator

- java.lang.Object
- - org.apache.commons.dbutils.ResultSetIterator

- All Implemented Interfaces:
    `Iterator<Object[]>`

      public class ResultSetIterator
      extends Object
      implements Iterator<Object[]>

  Wraps a `ResultSet` in an `Iterator&lt;Object[]&gt;`. This is useful when you want to present a non-database application layer with domain neutral data.

  This implementation requires the `ResultSet.isLast()` method to be implemented.

- - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `ResultSetIterator​(ResultSet resultSet)` | Constructor for ResultSetIterator.
    `ResultSetIterator​(ResultSet resultSet, RowProcessor convert)` | Constructor for ResultSetIterator.

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `boolean` | `hasNext()` | Returns true if there are more rows in the ResultSet.
    `static Iterable<Object[]>` | `iterable​(ResultSet resultSet)` | Generates an `Iterable`, suitable for use in for-each loops.
    `Object[]` | `next()` | Returns the next row as an `Object[]`.
    `void` | `remove()` | Deletes the current row from the `ResultSet`.
    `protected void` | `rethrow​(SQLException e)` | Rethrow the SQLException as a RuntimeException.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

    - ### Methods inherited from interface java.util.Iterator

      `forEachRemaining`

- - ### Constructor Detail

    - #### ResultSetIterator

          public ResultSetIterator​(ResultSet resultSet)

      Constructor for ResultSetIterator.
      Parameters:
        `resultSet` - Wrap this `ResultSet` in an `Iterator`.

    - #### ResultSetIterator

          public ResultSetIterator​(ResultSet resultSet,
                                   RowProcessor convert)

      Constructor for ResultSetIterator.
      Parameters:
        `resultSet` - Wrap this `ResultSet` in an `Iterator`.
        `convert` - The processor to use when converting a row into an `Object[]`. Defaults to a `BasicRowProcessor`.

  - ### Method Detail

    - #### iterable

          public static Iterable<Object[]> iterable​(ResultSet resultSet)

      Generates an `Iterable`, suitable for use in for-each loops.
      Parameters:
        `resultSet` - Wrap this `ResultSet` in an `Iterator`.
      Returns:
        an `Iterable`, suitable for use in for-each loops.

    - #### hasNext

          public boolean hasNext()

      Returns true if there are more rows in the ResultSet.
      Specified by:
        `hasNext` in interface `Iterator<Object[]>`
      Returns:
        boolean `true` if there are more rows
      Throws:
        `RuntimeException` - if an SQLException occurs.

    - #### next

          public Object[] next()

      Returns the next row as an `Object[]`.
      Specified by:
        `next` in interface `Iterator<Object[]>`
      Returns:
        An `Object[]` with the same number of elements as columns in the `ResultSet`.
      Throws:
        `RuntimeException` - if an SQLException occurs.
      See Also:
        `Iterator.next()`

    - #### remove

          public void remove()

      Deletes the current row from the `ResultSet`.
      Specified by:
        `remove` in interface `Iterator<Object[]>`
      Throws:
        `RuntimeException` - if an SQLException occurs.
      See Also:
        `Iterator.remove()`

    - #### rethrow

          protected void rethrow​(SQLException e)

      Rethrow the SQLException as a RuntimeException. This implementation creates a new RuntimeException with the SQLException's error message.
      Parameters:
        `e` - SQLException to rethrow
      Since:
        1.1