Class MapMapper

java.lang.Object
org.jdbi.v3.core.mapper.MapMapper
All Implemented Interfaces:
RowMapper<Map<String,​Object>>

public class MapMapper extends Object implements RowMapper<Map<String,​Object>>
Yo dawg, I heard you like maps, so I made you a mapper that maps rows into Map<String,Object>. Map keys are column names, while map values are the values in those columns. Map keys are converted to lowercase by default.
See Also:
GenericMapMapperFactory
  • Constructor Details

    • MapMapper

      public MapMapper()
      Constructs a new MapMapper and delegates case control to MapMappers.
    • MapMapper

      public MapMapper(boolean toLowerCase)
      Constructs a new MapMapper
      Parameters:
      toLowerCase - if true, column names are converted to lowercase in the mapped Map. If false, nothing is done. Use the other constructor to delegate case control to MapMappers instead.
  • Method Details

    • map

      public Map<String,​Object> map(ResultSet rs, StatementContext ctx) throws SQLException
      Description copied from interface: RowMapper
      Map the current row of the result set. This method should not cause the result set to advance; allow Jdbi to do that, please.
      Specified by:
      map in interface RowMapper<Map<String,​Object>>
      Parameters:
      rs - the result set being iterated
      ctx - the statement context
      Returns:
      the value to produce for this row
      Throws:
      SQLException - if anything goes wrong go ahead and let this percolate; Jdbi will handle it
    • specialize

      public RowMapper<Map<String,​Object>> specialize(ResultSet rs, StatementContext ctx) throws SQLException
      Description copied from interface: RowMapper
      Returns a specialized row mapper, optimized for the given result set.

      Before mapping the result set from a SQL statement; Jdbi will first call this method to obtain a specialized instance. The returned mapper will then be used to map the result set rows, and discarded.

      Implementing this method is optional; the default implementation returns this. Implementors might choose to override this method to improve performance, e.g. by matching up column names to properties once for the entire result set, rather than repeating the process for every row.

      Specified by:
      specialize in interface RowMapper<Map<String,​Object>>
      Parameters:
      rs - the result set to specialize over
      ctx - the statement context to specialize over
      Returns:
      a row mapper equivalent to this one, possibly specialized.
      Throws:
      SQLException - if anything goes wrong go ahead and let this percolate; Jdbi will handle it
      See Also:
      for an example of specialization.