public class ResultSetWrappingSqlRowSet extends Object implements SqlRowSet
SqlRowSet interface, wrapping a
ResultSet, catching any SQLExceptions and translating
them to a corresponding Spring InvalidResultSetAccessException.
The passed-in ResultSet should already be disconnected if the SqlRowSet is supposed
to be usable in a disconnected fashion. This means that you will usually pass in a
javax.sql.rowset.CachedRowSet, which implements the ResultSet interface.
Note: Since JDBC 4.0, it has been clarified that any methods using a String to identify
the column should be using the column label. The column label is assigned using the ALIAS
keyword in the SQL query string. When the query doesn't use an ALIAS, the default label is
the column name. Most JDBC ResultSet implementations follow this new pattern but there are
exceptions such as the com.sun.rowset.CachedRowSetImpl class which only uses
the column name, ignoring any column labels. As of Spring 3.0.5, ResultSetWrappingSqlRowSet
will translate column labels to the correct column index to provide better support for the
com.sun.rowset.CachedRowSetImpl which is the default implementation used by
JdbcTemplate when working with RowSets.
Note: This class implements the java.io.Serializable marker interface
through the SqlRowSet interface, but is only actually serializable if the disconnected
ResultSet/RowSet contained in it is serializable. Most CachedRowSet implementations
are actually serializable, so this should usually work out.
ResultSet,
CachedRowSet,
JdbcTemplate.queryForRowSet(java.lang.String),
Serialized Form| Constructor and Description |
|---|
ResultSetWrappingSqlRowSet(ResultSet resultSet)
Create a new ResultSetWrappingSqlRowSet for the given ResultSet.
|
| Modifier and Type | Method and Description |
|---|---|
boolean |
absolute(int row)
Move the cursor to the given row number in the row set,
just after the last row.
|
void |
afterLast()
Move the cursor to the end of this row set.
|
void |
beforeFirst()
Move the cursor to the front of this row set,
just before the first row.
|
int |
findColumn(String columnLabel)
Map the given column label to its column index.
|
boolean |
first()
Move the cursor to the first row of this row set.
|
BigDecimal |
getBigDecimal(int columnIndex)
Retrieve the value of the indicated column in the current row
as a BigDecimal object.
|
BigDecimal |
getBigDecimal(String columnLabel)
Retrieve the value of the indicated column in the current row
as a BigDecimal object.
|
boolean |
getBoolean(int columnIndex)
Retrieve the value of the indicated column in the current row
as a boolean.
|
boolean |
getBoolean(String columnLabel)
Retrieve the value of the indicated column in the current row
as a boolean.
|
byte |
getByte(int columnIndex)
Retrieve the value of the indicated column in the current row
as a byte.
|
byte |
getByte(String columnLabel)
Retrieve the value of the indicated column in the current row
as a byte.
|
Date |
getDate(int columnIndex)
Retrieve the value of the indicated column in the current row
as a Date object.
|
Date |
getDate(int columnIndex,
Calendar cal)
Retrieve the value of the indicated column in the current row
as a Date object.
|
Date |
getDate(String columnLabel)
Retrieve the value of the indicated column in the current row
as a Date object.
|
Date |
getDate(String columnLabel,
Calendar cal)
Retrieve the value of the indicated column in the current row
as a Date object.
|
double |
getDouble(int columnIndex)
Retrieve the value of the indicated column in the current row
as a Double object.
|
double |
getDouble(String columnLabel)
Retrieve the value of the indicated column in the current row
as a Double object.
|
float |
getFloat(int columnIndex)
Retrieve the value of the indicated column in the current row
as a float.
|
float |
getFloat(String columnLabel)
Retrieve the value of the indicated column in the current row
as a float.
|
int |
getInt(int columnIndex)
Retrieve the value of the indicated column in the current row
as an int.
|
int |
getInt(String columnLabel)
Retrieve the value of the indicated column in the current row
as an int.
|
long |
getLong(int columnIndex)
Retrieve the value of the indicated column in the current row
as a long.
|
long |
getLong(String columnLabel)
Retrieve the value of the indicated column in the current row
as a long.
|
SqlRowSetMetaData |
getMetaData()
Retrieve the meta data, i.e.
|
Object |
getObject(int columnIndex)
Retrieve the value of the indicated column in the current row
as an Object.
|
Object |
getObject(int columnIndex,
Map<String,Class<?>> map)
Retrieve the value of the indicated column in the current row
as an Object.
|
Object |
getObject(String columnLabel)
Retrieve the value of the indicated column in the current row
as an Object.
|
Object |
getObject(String columnLabel,
Map<String,Class<?>> map)
Retrieve the value of the indicated column in the current row
as an Object.
|
ResultSet |
getResultSet()
Return the underlying ResultSet
(usually a
javax.sql.rowset.CachedRowSet). |
int |
getRow()
Retrieve the current row number.
|
short |
getShort(int columnIndex)
Retrieve the value of the indicated column in the current row
as a short.
|
short |
getShort(String columnLabel)
Retrieve the value of the indicated column in the current row
as a short.
|
String |
getString(int columnIndex)
Retrieve the value of the indicated column in the current row
as a String.
|
String |
getString(String columnLabel)
Retrieve the value of the indicated column in the current row
as a String.
|
Time |
getTime(int columnIndex)
Retrieve the value of the indicated column in the current row
as a Time object.
|
Time |
getTime(int columnIndex,
Calendar cal)
Retrieve the value of the indicated column in the current row
as a Time object.
|
Time |
getTime(String columnLabel)
Retrieve the value of the indicated column in the current row
as a Time object.
|
Time |
getTime(String columnLabel,
Calendar cal)
Retrieve the value of the indicated column in the current row
as a Time object.
|
Timestamp |
getTimestamp(int columnIndex)
Retrieve the value of the indicated column in the current row
as a Timestamp object.
|
Timestamp |
getTimestamp(int columnIndex,
Calendar cal)
Retrieve the value of the indicated column in the current row
as a Timestamp object.
|
Timestamp |
getTimestamp(String columnLabel)
Retrieve the value of the indicated column in the current row
as a Timestamp object.
|
Timestamp |
getTimestamp(String columnLabel,
Calendar cal)
Retrieve the value of the indicated column in the current row
as a Timestamp object.
|
boolean |
isAfterLast()
Retrieve whether the cursor is after the last row of this row set.
|
boolean |
isBeforeFirst()
Retrieve whether the cursor is before the first row of this row set.
|
boolean |
isFirst()
Retrieve whether the cursor is on the first row of this row set.
|
boolean |
isLast()
Retrieve whether the cursor is on the last row of this row set.
|
boolean |
last()
Move the cursor to the last row of this row set.
|
boolean |
next()
Move the cursor to the next row.
|
boolean |
previous()
Move the cursor to the previous row.
|
boolean |
relative(int rows)
Move the cursor a relative number of rows,
either positive or negative.
|
boolean |
wasNull()
Report whether the last column read had a value of SQL
NULL. |
public ResultSetWrappingSqlRowSet(ResultSet resultSet) throws InvalidResultSetAccessException
resultSet - a disconnected ResultSet to wrap
(usually a javax.sql.rowset.CachedRowSet)InvalidResultSetAccessException - if extracting
the ResultSetMetaData failedCachedRowSet,
ResultSet.getMetaData(),
ResultSetWrappingSqlRowSetMetaDatapublic final ResultSet getResultSet()
javax.sql.rowset.CachedRowSet).CachedRowSetpublic final SqlRowSetMetaData getMetaData()
SqlRowSetgetMetaData in interface SqlRowSetResultSetMetaData.getCatalogName(int)public int findColumn(String columnLabel) throws InvalidResultSetAccessException
SqlRowSetfindColumn in interface SqlRowSetcolumnLabel - the name of the columnInvalidResultSetAccessExceptionResultSet.findColumn(String)public BigDecimal getBigDecimal(int columnIndex) throws InvalidResultSetAccessException
SqlRowSetgetBigDecimal in interface SqlRowSetcolumnIndex - the column indexInvalidResultSetAccessExceptionResultSet.getBigDecimal(int)public BigDecimal getBigDecimal(String columnLabel) throws InvalidResultSetAccessException
SqlRowSetgetBigDecimal in interface SqlRowSetcolumnLabel - the column labelInvalidResultSetAccessExceptionResultSet.getBigDecimal(String)public boolean getBoolean(int columnIndex)
throws InvalidResultSetAccessException
SqlRowSetgetBoolean in interface SqlRowSetcolumnIndex - the column indexInvalidResultSetAccessExceptionResultSet.getBoolean(int)public boolean getBoolean(String columnLabel) throws InvalidResultSetAccessException
SqlRowSetgetBoolean in interface SqlRowSetcolumnLabel - the column labelInvalidResultSetAccessExceptionResultSet.getBoolean(String)public byte getByte(int columnIndex)
throws InvalidResultSetAccessException
SqlRowSetgetByte in interface SqlRowSetcolumnIndex - the column indexInvalidResultSetAccessExceptionResultSet.getByte(int)public byte getByte(String columnLabel) throws InvalidResultSetAccessException
SqlRowSetgetByte in interface SqlRowSetcolumnLabel - the column labelInvalidResultSetAccessExceptionResultSet.getByte(String)public Date getDate(int columnIndex) throws InvalidResultSetAccessException
SqlRowSetgetDate in interface SqlRowSetcolumnIndex - the column indexInvalidResultSetAccessExceptionResultSet.getDate(int)public Date getDate(String columnLabel) throws InvalidResultSetAccessException
SqlRowSetgetDate in interface SqlRowSetcolumnLabel - the column labelInvalidResultSetAccessExceptionResultSet.getDate(String)public Date getDate(int columnIndex, Calendar cal) throws InvalidResultSetAccessException
SqlRowSetgetDate in interface SqlRowSetcolumnIndex - the column indexcal - the Calendar to use in constructing the DateInvalidResultSetAccessExceptionResultSet.getDate(int, Calendar)public Date getDate(String columnLabel, Calendar cal) throws InvalidResultSetAccessException
SqlRowSetgetDate in interface SqlRowSetcolumnLabel - the column labelcal - the Calendar to use in constructing the DateInvalidResultSetAccessExceptionResultSet.getDate(String, Calendar)public double getDouble(int columnIndex)
throws InvalidResultSetAccessException
SqlRowSetgetDouble in interface SqlRowSetcolumnIndex - the column indexInvalidResultSetAccessExceptionResultSet.getDouble(int)public double getDouble(String columnLabel) throws InvalidResultSetAccessException
SqlRowSetgetDouble in interface SqlRowSetcolumnLabel - the column labelInvalidResultSetAccessExceptionResultSet.getDouble(String)public float getFloat(int columnIndex)
throws InvalidResultSetAccessException
SqlRowSetgetFloat in interface SqlRowSetcolumnIndex - the column indexInvalidResultSetAccessExceptionResultSet.getFloat(int)public float getFloat(String columnLabel) throws InvalidResultSetAccessException
SqlRowSetgetFloat in interface SqlRowSetcolumnLabel - the column labelInvalidResultSetAccessExceptionResultSet.getFloat(String)public int getInt(int columnIndex)
throws InvalidResultSetAccessException
SqlRowSetgetInt in interface SqlRowSetcolumnIndex - the column indexInvalidResultSetAccessExceptionResultSet.getInt(int)public int getInt(String columnLabel) throws InvalidResultSetAccessException
SqlRowSetgetInt in interface SqlRowSetcolumnLabel - the column labelInvalidResultSetAccessExceptionResultSet.getInt(String)public long getLong(int columnIndex)
throws InvalidResultSetAccessException
SqlRowSetgetLong in interface SqlRowSetcolumnIndex - the column indexInvalidResultSetAccessExceptionResultSet.getLong(int)public long getLong(String columnLabel) throws InvalidResultSetAccessException
SqlRowSetgetLong in interface SqlRowSetcolumnLabel - the column labelInvalidResultSetAccessExceptionResultSet.getLong(String)public Object getObject(int columnIndex) throws InvalidResultSetAccessException
SqlRowSetgetObject in interface SqlRowSetcolumnIndex - the column indexInvalidResultSetAccessExceptionResultSet.getObject(int)public Object getObject(String columnLabel) throws InvalidResultSetAccessException
SqlRowSetgetObject in interface SqlRowSetcolumnLabel - the column labelInvalidResultSetAccessExceptionResultSet.getObject(String)public Object getObject(int columnIndex, Map<String,Class<?>> map) throws InvalidResultSetAccessException
SqlRowSetgetObject in interface SqlRowSetcolumnIndex - the column indexmap - a Map object containing the mapping from SQL types to Java typesInvalidResultSetAccessExceptionResultSet.getObject(int, Map)public Object getObject(String columnLabel, Map<String,Class<?>> map) throws InvalidResultSetAccessException
SqlRowSetgetObject in interface SqlRowSetcolumnLabel - the column labelmap - a Map object containing the mapping from SQL types to Java typesInvalidResultSetAccessExceptionResultSet.getObject(String, Map)public short getShort(int columnIndex)
throws InvalidResultSetAccessException
SqlRowSetgetShort in interface SqlRowSetcolumnIndex - the column indexInvalidResultSetAccessExceptionResultSet.getShort(int)public short getShort(String columnLabel) throws InvalidResultSetAccessException
SqlRowSetgetShort in interface SqlRowSetcolumnLabel - the column labelInvalidResultSetAccessExceptionResultSet.getShort(String)public String getString(int columnIndex) throws InvalidResultSetAccessException
SqlRowSetgetString in interface SqlRowSetcolumnIndex - the column indexInvalidResultSetAccessExceptionResultSet.getString(int)public String getString(String columnLabel) throws InvalidResultSetAccessException
SqlRowSetgetString in interface SqlRowSetcolumnLabel - the column labelInvalidResultSetAccessExceptionResultSet.getString(String)public Time getTime(int columnIndex) throws InvalidResultSetAccessException
SqlRowSetgetTime in interface SqlRowSetcolumnIndex - the column indexInvalidResultSetAccessExceptionResultSet.getTime(int)public Time getTime(String columnLabel) throws InvalidResultSetAccessException
SqlRowSetgetTime in interface SqlRowSetcolumnLabel - the column labelInvalidResultSetAccessExceptionResultSet.getTime(String)public Time getTime(int columnIndex, Calendar cal) throws InvalidResultSetAccessException
SqlRowSetgetTime in interface SqlRowSetcolumnIndex - the column indexcal - the Calendar to use in constructing the DateInvalidResultSetAccessExceptionResultSet.getTime(int, Calendar)public Time getTime(String columnLabel, Calendar cal) throws InvalidResultSetAccessException
SqlRowSetgetTime in interface SqlRowSetcolumnLabel - the column labelcal - the Calendar to use in constructing the DateInvalidResultSetAccessExceptionResultSet.getTime(String, Calendar)public Timestamp getTimestamp(int columnIndex) throws InvalidResultSetAccessException
SqlRowSetgetTimestamp in interface SqlRowSetcolumnIndex - the column indexInvalidResultSetAccessExceptionResultSet.getTimestamp(int)public Timestamp getTimestamp(String columnLabel) throws InvalidResultSetAccessException
SqlRowSetgetTimestamp in interface SqlRowSetcolumnLabel - the column labelInvalidResultSetAccessExceptionResultSet.getTimestamp(String)public Timestamp getTimestamp(int columnIndex, Calendar cal) throws InvalidResultSetAccessException
SqlRowSetgetTimestamp in interface SqlRowSetcolumnIndex - the column indexcal - the Calendar to use in constructing the DateInvalidResultSetAccessExceptionResultSet.getTimestamp(int, Calendar)public Timestamp getTimestamp(String columnLabel, Calendar cal) throws InvalidResultSetAccessException
SqlRowSetgetTimestamp in interface SqlRowSetcolumnLabel - the column labelcal - the Calendar to use in constructing the DateInvalidResultSetAccessExceptionResultSet.getTimestamp(String, Calendar)public boolean absolute(int row)
throws InvalidResultSetAccessException
SqlRowSetabsolute in interface SqlRowSetrow - the number of the row where the cursor should movetrue if the cursor is on the row set,
false otherwiseInvalidResultSetAccessExceptionResultSet.absolute(int)public void afterLast()
throws InvalidResultSetAccessException
SqlRowSetafterLast in interface SqlRowSetInvalidResultSetAccessExceptionResultSet.afterLast()public void beforeFirst()
throws InvalidResultSetAccessException
SqlRowSetbeforeFirst in interface SqlRowSetInvalidResultSetAccessExceptionResultSet.beforeFirst()public boolean first()
throws InvalidResultSetAccessException
SqlRowSetfirst in interface SqlRowSettrue if the cursor is on a valid row,
false otherwiseInvalidResultSetAccessExceptionResultSet.first()public int getRow()
throws InvalidResultSetAccessException
SqlRowSetgetRow in interface SqlRowSetInvalidResultSetAccessExceptionResultSet.getRow()public boolean isAfterLast()
throws InvalidResultSetAccessException
SqlRowSetisAfterLast in interface SqlRowSettrue if the cursor is after the last row,
false otherwiseInvalidResultSetAccessExceptionResultSet.isAfterLast()public boolean isBeforeFirst()
throws InvalidResultSetAccessException
SqlRowSetisBeforeFirst in interface SqlRowSettrue if the cursor is before the first row,
false otherwiseInvalidResultSetAccessExceptionResultSet.isBeforeFirst()public boolean isFirst()
throws InvalidResultSetAccessException
SqlRowSetisFirst in interface SqlRowSettrue if the cursor is after the first row,
false otherwiseInvalidResultSetAccessExceptionResultSet.isFirst()public boolean isLast()
throws InvalidResultSetAccessException
SqlRowSetisLast in interface SqlRowSettrue if the cursor is after the last row,
false otherwiseInvalidResultSetAccessExceptionResultSet.isLast()public boolean last()
throws InvalidResultSetAccessException
SqlRowSetlast in interface SqlRowSettrue if the cursor is on a valid row,
false otherwiseInvalidResultSetAccessExceptionResultSet.last()public boolean next()
throws InvalidResultSetAccessException
SqlRowSetnext in interface SqlRowSettrue if the new row is valid,
false if there are no more rowsInvalidResultSetAccessExceptionResultSet.next()public boolean previous()
throws InvalidResultSetAccessException
SqlRowSetprevious in interface SqlRowSettrue if the new row is valid,
false if it is off the row setInvalidResultSetAccessExceptionResultSet.previous()public boolean relative(int rows)
throws InvalidResultSetAccessException
SqlRowSetrelative in interface SqlRowSettrue if the cursor is on a row,
false otherwiseInvalidResultSetAccessExceptionResultSet.relative(int)public boolean wasNull()
throws InvalidResultSetAccessException
SqlRowSetNULL.
Note that you must first call one of the getter methods
and then call the wasNull() method.
wasNull in interface SqlRowSettrue if the most recent coumn retrieved was
SQL NULL, false otherwiseInvalidResultSetAccessExceptionResultSet.wasNull()