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 /**
23 * <code>ResultSetHandler</code> implementation that converts one
24 * <code>ResultSet</code> column into a <code>List</code> of
25 * <code>Object</code>s. This class is thread safe.
26 *
27 * @see org.apache.commons.dbutils.ResultSetHandler
28 * @since DbUtils 1.1
29 */
30 public class ColumnListHandler extends GenericListHandler {
31
32 /**
33 * The column number to retrieve.
34 */
35 private int columnIndex = 1;
36
37 /**
38 * The column name to retrieve. Either columnName or columnIndex
39 * will be used but never both.
40 */
41 private String columnName = null;
42
43 /**
44 * Creates a new instance of ColumnListHandler. The first column of each
45 * row will be returned from <code>handle()</code>.
46 */
47 public ColumnListHandler() {
48 super();
49 }
50
51 /**
52 * Creates a new instance of ColumnListHandler.
53 *
54 * @param columnIndex The index of the column to retrieve from the
55 * <code>ResultSet</code>.
56 */
57 public ColumnListHandler(int columnIndex) {
58 this.columnIndex = columnIndex;
59 }
60
61 /**
62 * Creates a new instance of ColumnListHandler.
63 *
64 * @param columnName The name of the column to retrieve from the
65 * <code>ResultSet</code>.
66 */
67 public ColumnListHandler(String columnName) {
68 this.columnName = columnName;
69 }
70
71 /**
72 * Returns one <code>ResultSet</code> column value as <code>Object</code>.
73 *
74 * @return <code>Object</code>, never <code>null</code>.
75 *
76 * @throws SQLException if a database access error occurs
77 *
78 * @see org.apache.commons.dbutils.handlers.GenericListHandler#handle(ResultSet)
79 */
80 protected Object handleRow(ResultSet rs) throws SQLException {
81 if (this.columnName == null) {
82 return rs.getObject(this.columnIndex);
83 } else {
84 return rs.getObject(this.columnName);
85 }
86 }
87
88 }