Class SingleColumnRowMapper<T>
- Type Parameters:
- T- the result type
- All Implemented Interfaces:
- RowMapper<T>
RowMapper implementation that converts a single column into a single
 result value per row. Expects to operate on a java.sql.ResultSet
 that just contains a single column.
 The type of the result value for each row can be specified. The value
 for the single column will be extracted from the ResultSet
 and converted into the specified target type.
- Since:
- 1.2
- Author:
- Juergen Hoeller, Kazuki Shimizu
- See Also:
- 
Constructor SummaryConstructorsConstructorDescriptionCreate a newSingleColumnRowMapperfor bean-style configuration.SingleColumnRowMapper(Class<T> requiredType) Create a newSingleColumnRowMapper.
- 
Method SummaryModifier and TypeMethodDescriptionprotected ObjectconvertValueToRequiredType(Object value, Class<?> requiredType) Convert the given column value to the specified required type.protected ObjectgetColumnValue(ResultSet rs, int index) Retrieve a JDBC object value for the specified column, using the most appropriate value type.protected ObjectgetColumnValue(ResultSet rs, int index, Class<?> requiredType) Retrieve a JDBC object value for the specified column.Extract a value for the single column in the current row.static <T> SingleColumnRowMapper<T>newInstance(Class<T> requiredType) Static factory method to create a newSingleColumnRowMapper.static <T> SingleColumnRowMapper<T>newInstance(Class<T> requiredType, ConversionService conversionService) Static factory method to create a newSingleColumnRowMapper.voidsetConversionService(ConversionService conversionService) Set aConversionServicefor converting a fetched value.voidsetRequiredType(Class<T> requiredType) Set the type that each result object is expected to match.
- 
Constructor Details- 
SingleColumnRowMapperpublic SingleColumnRowMapper()Create a newSingleColumnRowMapperfor bean-style configuration.- See Also:
 
- 
SingleColumnRowMapperCreate a newSingleColumnRowMapper.- Parameters:
- requiredType- the type that each result object is expected to match
 
 
- 
- 
Method Details- 
setRequiredTypeSet the type that each result object is expected to match.If not specified, the column value will be exposed as returned by the JDBC driver. 
- 
setConversionServiceSet aConversionServicefor converting a fetched value.Default is the DefaultConversionService.- Since:
- 5.0.4
- See Also:
 
- 
mapRowExtract a value for the single column in the current row.Validates that there is only one column selected, then delegates to getColumnValue()and alsoconvertValueToRequiredType, if necessary.- Specified by:
- mapRowin interface- RowMapper<T>
- Parameters:
- rs- the ResultSet to map (pre-initialized for the current row)
- rowNum- the number of the current row
- Returns:
- the result object for the current row (may be null)
- Throws:
- SQLException- if an SQLException is encountered getting column values (that is, there's no need to catch SQLException)
- See Also:
 
- 
getColumnValue@Nullable protected Object getColumnValue(ResultSet rs, int index, @Nullable Class<?> requiredType) throws SQLException Retrieve a JDBC object value for the specified column.The default implementation calls JdbcUtils.getResultSetValue(java.sql.ResultSet, int, Class). If no required type has been specified, this method delegates togetColumnValue(rs, index), which basically callsResultSet.getObject(index)but applies some additional default conversion to appropriate value types.- Parameters:
- rs- is the ResultSet holding the data
- index- is the column index
- requiredType- the type that each result object is expected to match (or- nullif none specified)
- Returns:
- the Object value
- Throws:
- SQLException- in case of extraction failure
- See Also:
 
- 
getColumnValueRetrieve a JDBC object value for the specified column, using the most appropriate value type. Called if no required type has been specified.The default implementation delegates to JdbcUtils.getResultSetValue(), which uses theResultSet.getObject(index)method. Additionally, it includes a "hack" to get around Oracle returning a non-standard object for their TIMESTAMP datatype. See theJdbcUtils#getResultSetValue()javadoc for details.- Parameters:
- rs- is the ResultSet holding the data
- index- is the column index
- Returns:
- the Object value
- Throws:
- SQLException- in case of extraction failure
- See Also:
 
- 
convertValueToRequiredTypeConvert the given column value to the specified required type. Only called if the extracted column value does not match already.If the required type is String, the value will simply get stringified via toString(). In case of a Number, the value will be converted into a Number, either through number conversion or through String parsing (depending on the value type). Otherwise, the value will be converted to a required type using theConversionService.- Parameters:
- value- the column value as extracted from- getColumnValue()(never- null)
- requiredType- the type that each result object is expected to match (never- null)
- Returns:
- the converted value
- See Also:
 
- 
newInstanceStatic factory method to create a newSingleColumnRowMapper.- Parameters:
- requiredType- the type that each result object is expected to match
- Since:
- 4.1
- See Also:
 
- 
newInstancepublic static <T> SingleColumnRowMapper<T> newInstance(Class<T> requiredType, @Nullable ConversionService conversionService) Static factory method to create a newSingleColumnRowMapper.- Parameters:
- requiredType- the type that each result object is expected to match
- conversionService- the- ConversionServicefor converting a fetched value, or- nullfor none
- Since:
- 5.0.4
- See Also:
 
 
-