public class ResultSetWrappingSqlRowSet extends Object implements SqlRowSet
SqlRowSet interface.
This implementation wraps a javax.sql.ResultSet, catching any SQLExceptions
and translating them to the appropriate Spring InvalidResultSetAccessException.
The passed-in ResultSets 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)
Moves the cursor to the given row number in the RowSet, just after the last row.
|
void |
afterLast()
Moves the cursor to the end of this RowSet.
|
void |
beforeFirst()
Moves the cursor to the front of this RowSet, just before the first row.
|
int |
findColumn(String columnLabel)
Maps the given column label to its column index.
|
boolean |
first()
Moves the cursor to the first row of this RowSet.
|
BigDecimal |
getBigDecimal(int columnIndex)
Retrieves the value of the indicated column in the current row as
an BigDecimal object.
|
BigDecimal |
getBigDecimal(String columnLabel)
Retrieves the value of the indicated column in the current row as
an BigDecimal object.
|
boolean |
getBoolean(int columnIndex)
Retrieves the value of the indicated column in the current row as
a boolean.
|
boolean |
getBoolean(String columnLabel)
Retrieves the value of the indicated column in the current row as
a boolean.
|
byte |
getByte(int columnIndex)
Retrieves the value of the indicated column in the current row as
a byte.
|
byte |
getByte(String columnLabel)
Retrieves the value of the indicated column in the current row as
a byte.
|
Date |
getDate(int columnIndex)
Retrieves the value of the indicated column in the current row as
a Date object.
|
Date |
getDate(int columnIndex,
Calendar cal)
Retrieves the value of the indicated column in the current row as
a Date object.
|
Date |
getDate(String columnLabel)
Retrieves the value of the indicated column in the current row as
a Date object.
|
Date |
getDate(String columnLabel,
Calendar cal)
Retrieves the value of the indicated column in the current row as
a Date object.
|
double |
getDouble(int columnIndex)
Retrieves the value of the indicated column in the current row as
a Double object.
|
double |
getDouble(String columnLabel)
Retrieves the value of the indicated column in the current row as
a Double object.
|
float |
getFloat(int columnIndex)
Retrieves the value of the indicated column in the current row as
a float.
|
float |
getFloat(String columnLabel)
Retrieves the value of the indicated column in the current row as
a float.
|
int |
getInt(int columnIndex)
Retrieves the value of the indicated column in the current row as
an int.
|
int |
getInt(String columnLabel)
Retrieves the value of the indicated column in the current row as
an int.
|
long |
getLong(int columnIndex)
Retrieves the value of the indicated column in the current row as
a long.
|
long |
getLong(String columnLabel)
Retrieves the value of the indicated column in the current row as
a long.
|
SqlRowSetMetaData |
getMetaData()
Retrieves the meta data (number, types and properties for the columns)
of this row set.
|
Object |
getObject(int columnIndex)
Retrieves the value of the indicated column in the current row as
an Object.
|
Object |
getObject(int i,
Map<String,Class<?>> map)
Retrieves the value of the indicated column in the current row as
an Object.
|
Object |
getObject(String columnLabel)
Retrieves the value of the indicated column in the current row as
an Object.
|
Object |
getObject(String columnLabel,
Map<String,Class<?>> map)
Retrieves 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()
Retrieves the current row number.
|
short |
getShort(int columnIndex)
Retrieves the value of the indicated column in the current row as
a short.
|
short |
getShort(String columnLabel)
Retrieves the value of the indicated column in the current row as
a short.
|
String |
getString(int columnIndex)
Retrieves the value of the indicated column in the current row as
a String.
|
String |
getString(String columnLabel)
Retrieves the value of the indicated column in the current row as
a String.
|
Time |
getTime(int columnIndex)
Retrieves the value of the indicated column in the current row as
a Time object.
|
Time |
getTime(int columnIndex,
Calendar cal)
Retrieves the value of the indicated column in the current row as
a Time object.
|
Time |
getTime(String columnLabel)
Retrieves the value of the indicated column in the current row as
a Time object.
|
Time |
getTime(String columnLabel,
Calendar cal)
Retrieves the value of the indicated column in the current row as
a Time object.
|
Timestamp |
getTimestamp(int columnIndex)
Retrieves the value of the indicated column in the current row as
a Timestamp object.
|
Timestamp |
getTimestamp(int columnIndex,
Calendar cal)
Retrieves the value of the indicated column in the current row as
a Timestamp object.
|
Timestamp |
getTimestamp(String columnLabel)
Retrieves the value of the indicated column in the current row as
a Timestamp object.
|
Timestamp |
getTimestamp(String columnLabel,
Calendar cal)
Retrieves the value of the indicated column in the current row as
a Timestamp object.
|
boolean |
isAfterLast()
Retrieves whether the cursor is after the last row of this RowSet.
|
boolean |
isBeforeFirst()
Retrieves whether the cursor is after the first row of this RowSet.
|
boolean |
isFirst()
Retrieves whether the cursor is on the first row of this RowSet.
|
boolean |
isLast()
Retrieves whether the cursor is on the last row of this RowSet.
|
boolean |
last()
Moves the cursor to the last row of this RowSet.
|
boolean |
next()
Moves the cursor to the next row.
|
boolean |
previous()
Moves the cursor to the previous row.
|
boolean |
relative(int rows)
Moves the cursor a relative number f rows, either positive or negative.
|
boolean |
wasNull()
Reports 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, Calendar cal) throws InvalidResultSetAccessException
SqlRowSetgetDate in interface SqlRowSetcolumnIndex - the column indexcal - the Calendar to use in constructing the DateInvalidResultSetAccessExceptionResultSet.getDate(int, java.util.Calendar)public Date getDate(int columnIndex) throws InvalidResultSetAccessException
SqlRowSetgetDate in interface SqlRowSetcolumnIndex - the column indexInvalidResultSetAccessExceptionResultSet.getDate(int)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, java.util.Calendar)public Date getDate(String columnLabel) throws InvalidResultSetAccessException
SqlRowSetgetDate in interface SqlRowSetcolumnLabel - the column labelInvalidResultSetAccessExceptionResultSet.getDate(String)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 i, Map<String,Class<?>> map) throws InvalidResultSetAccessException
SqlRowSetgetObject in interface SqlRowSeti - the column indexmap - a Map object containing the mapping from SQL types to Java typesInvalidResultSetAccessExceptionResultSet.getObject(int, java.util.Map)public Object getObject(int columnIndex) throws InvalidResultSetAccessException
SqlRowSetgetObject in interface SqlRowSetcolumnIndex - the column indexInvalidResultSetAccessExceptionResultSet.getObject(int)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, java.util.Map)public Object getObject(String columnLabel) throws InvalidResultSetAccessException
SqlRowSetgetObject in interface SqlRowSetcolumnLabel - the column labelInvalidResultSetAccessExceptionResultSet.getObject(String)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, Calendar cal) throws InvalidResultSetAccessException
SqlRowSetgetTime in interface SqlRowSetcolumnIndex - the column indexcal - the Calendar to use in constructing the DateInvalidResultSetAccessExceptionResultSet.getTime(int, java.util.Calendar)public Time getTime(int columnIndex) throws InvalidResultSetAccessException
SqlRowSetgetTime in interface SqlRowSetcolumnIndex - the column indexInvalidResultSetAccessExceptionResultSet.getTime(int)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, java.util.Calendar)public Time getTime(String columnLabel) throws InvalidResultSetAccessException
SqlRowSetgetTime in interface SqlRowSetcolumnLabel - the column labelInvalidResultSetAccessExceptionResultSet.getTime(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, java.util.Calendar)public Timestamp getTimestamp(int columnIndex) throws InvalidResultSetAccessException
SqlRowSetgetTimestamp in interface SqlRowSetcolumnIndex - the column indexInvalidResultSetAccessExceptionResultSet.getTimestamp(int)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, java.util.Calendar)public Timestamp getTimestamp(String columnLabel) throws InvalidResultSetAccessException
SqlRowSetgetTimestamp in interface SqlRowSetcolumnLabel - the column labelInvalidResultSetAccessExceptionResultSet.getTimestamp(String)public boolean absolute(int row)
throws InvalidResultSetAccessException
SqlRowSetabsolute in interface SqlRowSetrow - the number of the row where the cursor should moveInvalidResultSetAccessExceptionResultSet.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 SqlRowSetInvalidResultSetAccessExceptionResultSet.first()public int getRow()
throws InvalidResultSetAccessException
SqlRowSetgetRow in interface SqlRowSetInvalidResultSetAccessExceptionResultSet.getRow()public boolean isAfterLast()
throws InvalidResultSetAccessException
SqlRowSetisAfterLast in interface SqlRowSetInvalidResultSetAccessExceptionResultSet.isAfterLast()public boolean isBeforeFirst()
throws InvalidResultSetAccessException
SqlRowSetisBeforeFirst in interface SqlRowSetInvalidResultSetAccessExceptionResultSet.isBeforeFirst()public boolean isFirst()
throws InvalidResultSetAccessException
SqlRowSetisFirst in interface SqlRowSetInvalidResultSetAccessExceptionResultSet.isFirst()public boolean isLast()
throws InvalidResultSetAccessException
SqlRowSetisLast in interface SqlRowSetInvalidResultSetAccessExceptionResultSet.isLast()public boolean last()
throws InvalidResultSetAccessException
SqlRowSetlast in interface SqlRowSetInvalidResultSetAccessExceptionResultSet.last()public boolean next()
throws InvalidResultSetAccessException
SqlRowSetnext in interface SqlRowSetInvalidResultSetAccessExceptionResultSet.next()public boolean previous()
throws InvalidResultSetAccessException
SqlRowSetprevious in interface SqlRowSetInvalidResultSetAccessExceptionResultSet.previous()public boolean relative(int rows)
throws InvalidResultSetAccessException
SqlRowSetrelative in interface SqlRowSetInvalidResultSetAccessExceptionResultSet.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 SqlRowSetNULL,
false otherwiseInvalidResultSetAccessExceptionResultSet.wasNull()