public class

ColumnMapRowMapper

extends Object
implements RowMapper<T>
java.lang.Object
   ↳ org.springframework.jdbc.core.ColumnMapRowMapper

Class Overview

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(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.

Summary

Public Constructors
ColumnMapRowMapper()
Public Methods
Map<StringObject> mapRow(ResultSet rs, int rowNum)
Implementations must implement this method to map each row of data in the ResultSet.
Protected Methods
Map<StringObject> createColumnMap(int columnCount)
Create a Map instance to be used as column map.
String getColumnKey(String columnName)
Determine the key to use for the given column in the column Map.
Object getColumnValue(ResultSet rs, int index)
Retrieve a JDBC object value for the specified column.
[Expand]
Inherited Methods
From class java.lang.Object
From interface org.springframework.jdbc.core.RowMapper

Public Constructors

public ColumnMapRowMapper ()

Public Methods

public Map<StringObject> mapRow (ResultSet rs, int rowNum)

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.

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
Throws
SQLException

Protected Methods

protected Map<StringObject> createColumnMap (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

protected String getColumnKey (String columnName)

Determine the key to use for the given column in the column Map.

Parameters
columnName the column name as returned by the ResultSet
Returns
  • the column key to use

protected Object getColumnValue (ResultSet rs, int index)

Retrieve a JDBC object value for the specified column.

The default implementation uses the getObject method. Additionally, this implementation includes a "hack" to get around Oracle returning a non standard object for their TIMESTAMP datatype.

Parameters
rs is the ResultSet holding the data
index is the column index
Returns
  • the Object returned
Throws
SQLException