1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.commons.dbutils.handlers;
18
19 import java.sql.ResultSet;
20 import java.sql.SQLException;
21
22 import org.apache.commons.dbutils.ResultSetHandler;
23 import org.apache.commons.dbutils.RowProcessor;
24
25 /**
26 * <code>ResultSetHandler</code> implementation that converts the first
27 * <code>ResultSet</code> row into a <code>Map</code>. This class is thread
28 * safe.
29 *
30 * @see org.apache.commons.dbutils.ResultSetHandler
31 */
32 public class MapHandler implements ResultSetHandler {
33
34 /**
35 * The RowProcessor implementation to use when converting rows
36 * into Maps.
37 */
38 private RowProcessor convert = ArrayHandler.ROW_PROCESSOR;
39
40 /**
41 * Creates a new instance of MapHandler using a
42 * <code>BasicRowProcessor</code> for conversion.
43 */
44 public MapHandler() {
45 super();
46 }
47
48 /**
49 * Creates a new instance of MapHandler.
50 *
51 * @param convert The <code>RowProcessor</code> implementation
52 * to use when converting rows into Maps.
53 */
54 public MapHandler(RowProcessor convert) {
55 super();
56 this.convert = convert;
57 }
58
59 /**
60 * Converts the first row in the <code>ResultSet</code> into a
61 * <code>Map</code>.
62 *
63 * @return A <code>Map</code> with the values from the first row or
64 * <code>null</code> if there are no rows in the <code>ResultSet</code>.
65 *
66 * @throws SQLException if a database access error occurs
67 *
68 * @see org.apache.commons.dbutils.ResultSetHandler#handle(java.sql.ResultSet)
69 */
70 public Object handle(ResultSet rs) throws SQLException {
71 return rs.next() ? this.convert.toMap(rs) : null;
72 }
73
74 }