## com.mysql.jdbc
Class RowDataKeyset

    java.lang.Object
      com.mysql.jdbc.RowDataKeyset

All Implemented Interfaces:
  RowData

     class RowDataKeyset

extends java.lang.Object
implements RowData

Field Summary

Fields inherited from interface com.mysql.jdbc.RowData
`RESULT_SET_SIZE_UNKNOWN`

Constructor Summary
`RowDataKeyset()`

Method Summary
`void` `addRow(ResultSetRow row)` Adds a row to this row data.
`void` `afterLast()` Moves to after last.
`void` `beforeFirst()` Moves to before first.
`void` `beforeLast()` Moves to before last so next el is the last el.
`void` `close()` We're done.
`ResultSetRow` `getAt(int index)` Only works on non dynamic result sets.
`int` `getCurrentRowNumber()` Returns the current position in the result set as a row number.
`ResultSetInternalMethods` `getOwner()` Returns the result set that 'owns' this RowData
`boolean` `hasNext()` Returns true if another row exsists.
`boolean` `isAfterLast()` Returns true if we got the last element.
`boolean` `isBeforeFirst()` Returns if iteration has not occured yet.
`boolean` `isDynamic()` Returns true if the result set is dynamic.
`boolean` `isEmpty()` Has no records.
`boolean` `isFirst()` Are we on the first row of the result set?
`boolean` `isLast()` Are we on the last row of the result set?
`void` `moveRowRelative(int rows)` Moves the current position relative 'rows' from the current position.
`ResultSetRow` `next()` Returns the next row.
`void` `removeRow(int index)` Removes the row at the given index.
`void` `setCurrentRow(int rowNumber)` Moves the current position in the result set to the given row number.
`void` `setMetadata(Field[] metadata)` Sometimes the driver doesn't have metadata until after the statement has the result set in-hand (because it's cached), so it can call this to set it after the fact.
`void` `setOwner(ResultSetImpl rs)` Set the result set that 'owns' this RowData
`int` `size()` Only works on non dynamic result sets.
`boolean` `wasEmpty()` Did this result set have no rows?

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### RowDataKeyset

    RowDataKeyset()

Method Detail

### addRow

    public void addRow(ResultSetRow row)
                throws java.sql.SQLException

  Description copied from interface: `RowData`
  Adds a row to this row data.

  Specified by:
    `addRow` in interface `RowData`
  Parameters:
    `row` - the row to add
  Throws:
    `java.sql.SQLException` - if a database error occurs

### afterLast

    public void afterLast()
                   throws java.sql.SQLException

  Description copied from interface: `RowData`
  Moves to after last.

  Specified by:
    `afterLast` in interface `RowData`
  Throws:
    `java.sql.SQLException` - if a database error occurs

### beforeFirst

    public void beforeFirst()
                     throws java.sql.SQLException

  Description copied from interface: `RowData`
  Moves to before first.

  Specified by:
    `beforeFirst` in interface `RowData`
  Throws:
    `java.sql.SQLException` - if a database error occurs

### beforeLast

    public void beforeLast()
                    throws java.sql.SQLException

  Description copied from interface: `RowData`
  Moves to before last so next el is the last el.

  Specified by:
    `beforeLast` in interface `RowData`
  Throws:
    `java.sql.SQLException` - if a database error occurs

### close

    public void close()
               throws java.sql.SQLException

  Description copied from interface: `RowData`
  We're done.

  Specified by:
    `close` in interface `RowData`
  Throws:
    `java.sql.SQLException` - if a database error occurs

### getAt

    public ResultSetRow getAt(int index)
                       throws java.sql.SQLException

  Description copied from interface: `RowData`
  Only works on non dynamic result sets.

  Specified by:
    `getAt` in interface `RowData`
  Parameters:
    `index` - row number to get at
  Returns:
    row data at index
  Throws:
    `java.sql.SQLException` - if a database error occurs

### getCurrentRowNumber

    public int getCurrentRowNumber()
                            throws java.sql.SQLException

  Description copied from interface: `RowData`
  Returns the current position in the result set as a row number.

  Specified by:
    `getCurrentRowNumber` in interface `RowData`
  Returns:
    the current row number
  Throws:
    `java.sql.SQLException` - if a database error occurs

### getOwner

    public ResultSetInternalMethods getOwner()

  Description copied from interface: `RowData`
  Returns the result set that 'owns' this RowData

  Specified by:
    `getOwner` in interface `RowData`

### hasNext

    public boolean hasNext()
                    throws java.sql.SQLException

  Description copied from interface: `RowData`
  Returns true if another row exsists.

  Specified by:
    `hasNext` in interface `RowData`
  Returns:
    true if more rows
  Throws:
    `java.sql.SQLException` - if a database error occurs

### isAfterLast

    public boolean isAfterLast()
                        throws java.sql.SQLException

  Description copied from interface: `RowData`
  Returns true if we got the last element.

  Specified by:
    `isAfterLast` in interface `RowData`
  Returns:
    true if after last row
  Throws:
    `java.sql.SQLException` - if a database error occurs

### isBeforeFirst

    public boolean isBeforeFirst()
                          throws java.sql.SQLException

  Description copied from interface: `RowData`
  Returns if iteration has not occured yet.

  Specified by:
    `isBeforeFirst` in interface `RowData`
  Returns:
    true if before first row
  Throws:
    `java.sql.SQLException` - if a database error occurs

### isDynamic

    public boolean isDynamic()
                      throws java.sql.SQLException

  Description copied from interface: `RowData`
  Returns true if the result set is dynamic. This means that move back and move forward won't work because we do not hold on to the records.

  Specified by:
    `isDynamic` in interface `RowData`
  Returns:
    true if this result set is streaming from the server
  Throws:
    `java.sql.SQLException` - if a database error occurs

### isEmpty

    public boolean isEmpty()
                    throws java.sql.SQLException

  Description copied from interface: `RowData`
  Has no records.

  Specified by:
    `isEmpty` in interface `RowData`
  Returns:
    true if no records
  Throws:
    `java.sql.SQLException` - if a database error occurs

### isFirst

    public boolean isFirst()
                    throws java.sql.SQLException

  Description copied from interface: `RowData`
  Are we on the first row of the result set?

  Specified by:
    `isFirst` in interface `RowData`
  Returns:
    true if on first row
  Throws:
    `java.sql.SQLException` - if a database error occurs

### isLast

    public boolean isLast()
                   throws java.sql.SQLException

  Description copied from interface: `RowData`
  Are we on the last row of the result set?

  Specified by:
    `isLast` in interface `RowData`
  Returns:
    true if on last row
  Throws:
    `java.sql.SQLException` - if a database error occurs

### moveRowRelative

    public void moveRowRelative(int rows)
                         throws java.sql.SQLException

  Description copied from interface: `RowData`
  Moves the current position relative 'rows' from the current position.

  Specified by:
    `moveRowRelative` in interface `RowData`
  Parameters:
    `rows` - the relative number of rows to move
  Throws:
    `java.sql.SQLException` - if a database error occurs

### next

    public ResultSetRow next()
                      throws java.sql.SQLException

  Description copied from interface: `RowData`
  Returns the next row.

  Specified by:
    `next` in interface `RowData`
  Returns:
    the next row value
  Throws:
    `java.sql.SQLException` - if a database error occurs

### removeRow

    public void removeRow(int index)
                   throws java.sql.SQLException

  Description copied from interface: `RowData`
  Removes the row at the given index.

  Specified by:
    `removeRow` in interface `RowData`
  Parameters:
    `index` - the row to move to
  Throws:
    `java.sql.SQLException` - if a database error occurs

### setCurrentRow

    public void setCurrentRow(int rowNumber)
                       throws java.sql.SQLException

  Description copied from interface: `RowData`
  Moves the current position in the result set to the given row number.

  Specified by:
    `setCurrentRow` in interface `RowData`
  Parameters:
    `rowNumber` - row to move to
  Throws:
    `java.sql.SQLException` - if a database error occurs

### setOwner

    public void setOwner(ResultSetImpl rs)

  Description copied from interface: `RowData`
  Set the result set that 'owns' this RowData

  Specified by:
    `setOwner` in interface `RowData`
  Parameters:
    `rs` - the result set that 'owns' this RowData

### size

    public int size()
             throws java.sql.SQLException

  Description copied from interface: `RowData`
  Only works on non dynamic result sets.

  Specified by:
    `size` in interface `RowData`
  Returns:
    the size of this row data
  Throws:
    `java.sql.SQLException` - if a database error occurs

### wasEmpty

    public boolean wasEmpty()

  Description copied from interface: `RowData`
  Did this result set have no rows?

  Specified by:
    `wasEmpty` in interface `RowData`

### setMetadata

    public void setMetadata(Field[] metadata)

  Description copied from interface: `RowData`
  Sometimes the driver doesn't have metadata until after the statement has the result set in-hand (because it's cached), so it can call this to set it after the fact.

  Specified by:
    `setMetadata` in interface `RowData`
  Parameters:
    `metadata` - field-level metadata for the result set