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 String[] | columnNames
Indexed from 0. |
| private int[] | columnTypes
Indexed from 0. |
| private int | rowCount
Rows we've seen so far. |
| Access | Constructor and Description |
|---|---|
| public |
| Modifier and Type | Method and Description |
|---|---|
| public final int | Returns: the number of columns in this result setReturn the number of columns in this result set. |
| public final String[] | Returns: the names of the columns. Indexed from 0 to n-1.Return the names of the columns. |
| public final int[] | Returns: the types of the columns as java.sql.Types constants. Indexed from 0 to n-1.Return the types of the columns as java.sql.Types constants Valid after processRow is invoked the first time. |
| public final int | |
| public final void | processRow(ResultSet
the rs)ResultSet to process (pre-initialized for the current row)Implements org. |
| protected void | processRow(ResultSet
the ResultSet to extract data from. This method is
invoked for each row rs, int number of the current row (starting from 0) rowNum)Subclasses may override this to perform custom extraction or processing. |
| columnCount | back to summary |
|---|---|
| private int columnCount Columns we've seen so far. | |
| columnNames | back to summary |
|---|---|
| private String[] columnNames Indexed from 0. Column name as returned by ResultSetMetaData object. | |
| columnTypes | back to summary |
|---|---|
| private int[] columnTypes Indexed from 0. Type (as in java.sql.Types) for the columns as returned by ResultSetMetaData object. | |
| rowCount | back to summary |
|---|---|
| private int rowCount Rows we've seen so far. | |
| RowCountCallbackHandler | back to summary |
|---|---|
| public RowCountCallbackHandler() | |
| getColumnCount | back to summary |
|---|---|
| public final int getColumnCount() Return the number of columns in this result set. Valid once we've seen the first row, so subclasses can use it during processing
| |
| getColumnNames | back to summary |
|---|---|
| public final String[] getColumnNames() Return the names of the columns. Valid after processRow is invoked the first time. | |
| getColumnTypes | back to summary |
|---|---|
| public final int[] getColumnTypes() Return the types of the columns as java.sql.Types constants Valid after processRow is invoked the first time.
| |
| getRowCount | back to summary |
|---|---|
| public final int getRowCount() Return the row count of this ResultSet. Only valid after processing is complete
| |
| processRow | back to summary |
|---|---|
| public final void processRow(ResultSet rs) throws SQLException Implements org. Implementation of ResultSetCallbackHandler. Work out column size if this is the first row, otherwise just count rows. Subclasses can perform custom extraction or processing
by overriding the
| |
| processRow | back to summary |
|---|---|
| protected void processRow(ResultSet rs, int rowNum) throws SQLException Subclasses may override this to perform custom extraction or processing. This class's implementation does nothing.
| |