public class RowCountCallbackHandler extends java.lang.Object implements RowCallbackHandler
We can either use this on its own (for example, in a test case, to ensure that our result sets have valid dimensions), or use it as a superclass for callback handlers that actually do something, and will benefit from the dimension information it provides.
A usage example with JdbcTemplate:
JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource); // reusable object RowCountCallbackHandler countCallback = new RowCountCallbackHandler(); // not reusable jdbcTemplate.query("select * from user", countCallback); int rowCount = countCallback.getRowCount();
Modifier and Type | Field and Description |
---|---|
private int |
columnCount
Columns we've seen so far
|
private java.lang.String[] |
columnNames
Indexed from 0.
|
private int[] |
columnTypes
Indexed from 0.
|
private int |
rowCount
Rows we've seen so far
|
Constructor and Description |
---|
RowCountCallbackHandler() |
Modifier and Type | Method and Description |
---|---|
int |
getColumnCount()
Return the number of columns in this result set.
|
java.lang.String[] |
getColumnNames()
Return the names of the columns.
|
int[] |
getColumnTypes()
Return the types of the columns as java.sql.Types constants
Valid after processRow is invoked the first time.
|
int |
getRowCount()
Return the row count of this ResultSet
Only valid after processing is complete
|
void |
processRow(java.sql.ResultSet rs)
Implementation of ResultSetCallbackHandler.
|
protected void |
processRow(java.sql.ResultSet rs,
int rowNum)
Subclasses may override this to perform custom extraction
or processing.
|
private int rowCount
private int columnCount
private int[] columnTypes
private java.lang.String[] columnNames
public final void processRow(java.sql.ResultSet rs) throws java.sql.SQLException
Subclasses can perform custom extraction or processing
by overriding the processRow(ResultSet, int)
method.
processRow
in interface RowCallbackHandler
rs
- the ResultSet to process (pre-initialized for the current row)java.sql.SQLException
- if a SQLException is encountered getting
column values (that is, there's no need to catch SQLException)processRow(java.sql.ResultSet, int)
protected void processRow(java.sql.ResultSet rs, int rowNum) throws java.sql.SQLException
rs
- ResultSet to extract data from. This method is
invoked for each rowrowNum
- number of the current row (starting from 0)java.sql.SQLException
public final int[] getColumnTypes()
public final java.lang.String[] getColumnNames()
public final int getRowCount()
public final int getColumnCount()