Class ColumnMapRowMapper

  • All Implemented Interfaces:
    RowMapper<Map<String,​Object>>

    public class ColumnMapRowMapper
    extends Object
    implements RowMapper<Map<String,​Object>>
    RowMapper implementation that creates a java.util.Map for each row, representing all columns as key-value pairs: one entry for each column, with the column name as key.

    The Map implementation to use and the key to use for each column in the column Map can be customized through overriding createColumnMap(int) and getColumnKey(java.lang.String), respectively.

    Note: By default, ColumnMapRowMapper will try to build a linked Map with case-insensitive keys, to preserve column order as well as allow any casing to be used for column names. This requires Commons Collections on the classpath (which will be autodetected). Else, the fallback is a standard linked HashMap, which will still preserve column order but requires the application to specify the column names in the same casing as exposed by the driver.

    Since:
    1.2
    Author:
    Juergen Hoeller
    See Also:
    JdbcTemplate.queryForList(String), JdbcTemplate.queryForMap(String)
    • Method Detail

      • mapRow

        public Map<String,​ObjectmapRow​(ResultSet rs,
                                               int rowNum)
                                        throws SQLException
        Description copied from interface: RowMapper
        Implementations must implement this method to map each row of data in the ResultSet. This method should not call next() on the ResultSet; it is only supposed to map values of the current row.
        Specified by:
        mapRow in interface RowMapper<Map<String,​Object>>
        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 a SQLException is encountered getting column values (that is, there's no need to catch SQLException)
      • createColumnMap

        protected Map<String,​ObjectcreateColumnMap​(int columnCount)
        Create a Map instance to be used as column map.

        By default, a linked case-insensitive Map will be created.

        Parameters:
        columnCount - the column count, to be used as initial capacity for the Map
        Returns:
        the new Map instance
        See Also:
        LinkedCaseInsensitiveMap