com.mysql.jdbc
Class RowDataDynamic

java.lang.Object
  extended bycom.mysql.jdbc.RowDataDynamic
All Implemented Interfaces:
RowData

public class RowDataDynamic
extends java.lang.Object
implements RowData

Allows streaming of MySQL data.


Nested Class Summary
(package private)  class RowDataDynamic.OperationNotSupportedException
           
 
Field Summary
 
Fields inherited from interface com.mysql.jdbc.RowData
RESULT_SET_SIZE_UNKNOWN
 
Constructor Summary
RowDataDynamic(MysqlIO io, int colCount, Field[] fields, boolean isBinaryEncoded)
          Creates a new RowDataDynamic object.
 
Method Summary
 void addRow(byte[][] 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.
 java.lang.Object[] getAt(int ind)
          Only works on non dynamic result sets.
 int getCurrentRowNumber()
          Returns the current position in the result set as a row number.
 ResultSet 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.
 java.lang.Object[] next()
          Returns the next row.
 void removeRow(int ind)
          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 setOwner(ResultSet rs)
          Set the result set that 'owns' this RowData
 int size()
          Only works on non dynamic result sets.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

RowDataDynamic

public RowDataDynamic(MysqlIO io,
                      int colCount,
                      Field[] fields,
                      boolean isBinaryEncoded)
               throws java.sql.SQLException
Creates a new RowDataDynamic object.

Parameters:
io - the connection to MySQL that this data is coming from
fields - the fields that describe this data
isBinaryEncoded - is this data in native format?
colCount - the number of columns
Throws:
java.sql.SQLException - if the next record can not be found
Method Detail

addRow

public void addRow(byte[][] row)
            throws java.sql.SQLException
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
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
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
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
We're done.

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

getAt

public java.lang.Object[] getAt(int ind)
                         throws java.sql.SQLException
Only works on non dynamic result sets.

Specified by:
getAt in interface RowData
Parameters:
ind - 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
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 ResultSet getOwner()
Description copied from interface: RowData
Returns the result set that 'owns' this RowData

Specified by:
getOwner in interface RowData
See Also:
RowData.getOwner()

hasNext

public boolean hasNext()
                throws java.sql.SQLException
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
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
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()
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

isEmpty

public boolean isEmpty()
                throws java.sql.SQLException
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
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
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
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 java.lang.Object[] next()
                        throws java.sql.SQLException
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 ind)
               throws java.sql.SQLException
Removes the row at the given index.

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

setCurrentRow

public void setCurrentRow(int rowNumber)
                   throws java.sql.SQLException
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(ResultSet 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
See Also:
RowData.setOwner(com.mysql.jdbc.ResultSet)

size

public int size()
Only works on non dynamic result sets.

Specified by:
size in interface RowData
Returns:
the size of this row data