Top Description Fields Constructors Methods
liquibase.executor.jvm

public Class ColumnMapRowMapper

extends Object
implements RowMapper
Class Inheritance
All Implemented Interfaces
liquibase.executor.jvm.RowMapper
Annotations
@SuppressWarnings:unchecked
Imports
liquibase.util.JdbcUtil, java.sql.ResultSet, .ResultSetMetaData, .SQLException, java.util.LinkedHashMap, .Locale, .Map

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 and getColumnKey, respectively.

Author
Spring Framework

Field Summary

Modifier and TypeField and Description
private final boolean

Constructor Summary

AccessConstructor and Description
public
ColumnMapRowMapper(boolean caseSensitiveDatabase)

Method Summary

Modifier and TypeMethod and Description
protected Map<K, V>

Returns:

the new Map instance
createColumnMap
(int
the column count, to be used as initial capacity for the Map
columnCount
)

Create a Map instance to be used as column map.

protected String

Returns:

the column key to use
getColumnKey
(String
the column name (uppercase) as returned by the ResultSet
columnName
)

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

protected Object

Returns:

the Object returned
getColumnValue
(ResultSet
is the ResultSet holding the data
rs
,
int
is the column index
index
)

Retrieve a JDBC object value for the specified column.

public Object
mapRow(ResultSet
the ResultSet to map (pre-initialized for the current row)
rs
,
int
the number of the current row
rowNum
)

Implements liquibase.executor.jvm.RowMapper.mapRow.

Implementations must implement this method to map each row of data in the ResultSet.

Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

caseSensitiveDatabaseback to summary
private final boolean caseSensitiveDatabase

Constructor Detail

ColumnMapRowMapperback to summary
public ColumnMapRowMapper(boolean caseSensitiveDatabase)

Method Detail

createColumnMapback to summary
protected Map<K, V> createColumnMap(int columnCount)

Create a Map instance to be used as column map.

Parameters
columnCount:int

the column count, to be used as initial capacity for the Map

Returns:Map<K, V>

the new Map instance

getColumnKeyback to summary
protected String getColumnKey(String columnName)

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

Parameters
columnName:String

the column name (uppercase) as returned by the ResultSet

Returns:String

the column key to use

See Also
java.sql.ResultSetMetaData#getColumnName
getColumnValueback to summary
protected Object getColumnValue(ResultSet rs, int index) throws SQLException

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:ResultSet

is the ResultSet holding the data

index:int

is the column index

Returns:Object

the Object returned

mapRowback to summary
public Object mapRow(ResultSet rs, int rowNum) throws SQLException

Implements liquibase.executor.jvm.RowMapper.mapRow.

Doc from liquibase.executor.jvm.RowMapper.mapRow.

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:ResultSet

the ResultSet to map (pre-initialized for the current row)

rowNum:int

the number of the current row

Returns:Object

the result object for the current row

Annotations
@Override
Exceptions
SQLException:
if a SQLException is encountered getting column values (that is, there's no need to catch SQLException)