Package org.apache.commons.dbutils.handlers

# Class AbstractKeyedHandler<K,V>

java.lang.Object
org.apache.commons.dbutils.handlers.AbstractKeyedHandler<K,V>

Type Parameters:
  `K` - the type of keys maintained by the returned map
  `V` - the type of mapped values

All Implemented Interfaces:
  `ResultSetHandler<Map<K,V>>`

Direct Known Subclasses:
  `BeanMapHandler`, `KeyedHandler`

public abstract class AbstractKeyedHandler<K,V> extends Object implements ResultSetHandler<Map<K,V>>

`ResultSetHandler` implementation that returns a Map. `ResultSet` rows are converted into objects (Vs) which are then stored in a Map under the given keys (Ks).

Since:
  1.3
See Also:
  - `ResultSetHandler`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `AbstractKeyedHandler()`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `protected abstract K`
  `createKey(ResultSet resultSet)`
  This factory method is called by `handle()` to retrieve the key value from the current `ResultSet` row.
  `protected Map<K,V>`
  `createMap()`
  This factory method is called by `handle()` to create the Map to store records in.
  `protected abstract V`
  `createRow(ResultSet resultSet)`
  This factory method is called by `handle()` to store the current `ResultSet` row in some object.
  `Map<K,V>`
  `handle(ResultSet resultSet)`
  Convert each row's columns into a Map and store then in a `Map` under `ResultSet.getObject(key)` key.

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Constructor Details

  - ### AbstractKeyedHandler

    public AbstractKeyedHandler()

- ## Method Details

  - ### createKey

    protected abstract K createKey(ResultSet resultSet) throws SQLException
    This factory method is called by `handle()` to retrieve the key value from the current `ResultSet` row.
    Parameters:
      `resultSet` - ResultSet to create a key from
    Returns:
      K from the configured key column name/index
    Throws:
      `SQLException` - if a database access error occurs

  - ### createMap

    protected Map<K,V> createMap()
    This factory method is called by `handle()` to create the Map to store records in. This implementation returns a `HashMap` instance.
    Returns:
      Map to store records in

  - ### createRow

    protected abstract V createRow(ResultSet resultSet) throws SQLException
    This factory method is called by `handle()` to store the current `ResultSet` row in some object.
    Parameters:
      `resultSet` - ResultSet to create a row from
    Returns:
      V object created from the current row
    Throws:
      `SQLException` - if a database access error occurs

  - ### handle

    public Map<K,V> handle(ResultSet resultSet) throws SQLException
    Convert each row's columns into a Map and store then in a `Map` under `ResultSet.getObject(key)` key.
    Specified by:
      `handle` in interface `ResultSetHandler<K>`
    Parameters:
      `resultSet` - `ResultSet` to process.
    Returns:
      A `Map`, never `null`.
    Throws:
      `SQLException` - if a database access error occurs
    See Also:
      - `ResultSetHandler.handle(java.sql.ResultSet)`