commons-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Mikhail Krivoshein <>
Subject [DbUtils] ListHandler
Date Fri, 28 May 2004 22:13:44 GMT
Hello all,

I'm wondering why DbUtils has no simple way to combine ResultSetHandlers.
In my code it is very common when I need to provide two methods: one 
retrieves List of items and another retrieve only one item.

Currently I use three methods in such case:
1) public Object get(int id) { ... } - retrieves one row and convert it 
into JavaBean with read method.
2) public List list() { ... } - retrieves many rows and convert them 
into List of JavaBeans with read method also.
3) private Object read(ResultSet rs) { ... } - converts current 
ResultSet row data into JavaBean object.

Now I'm moving to DbUtils library and want to use the same approach.

I plan:
1) implement custom ResultSetHandler to translate ResultSet row into 
2) use ListHandler (sources bolow) to convert ResultSet into List with 
help from ResultSetHandler from point 1.

package com.mikkri.tarot.db;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

import org.apache.commons.dbutils.ResultSetHandler;

 * Class prepares List of objects generated by provided handler for each 
resultset row.
 * @author Mikhail Krivoshein <>
 * @since 0.1
public class ListHandler implements ResultSetHandler {
    /** ResultSet row handler */
    private final ResultSetHandler rowHandler;

     * Class constructor.
     * @param rowHandler Handler called to generate object by resultset row.
     * It is assumed that this handler won't scroll resultset.
    public ListHandler(ResultSetHandler rowHandler) {
        this.rowHandler = rowHandler;
     * Method handles list.
    public Object handle(ResultSet rs) throws SQLException {
        List result = new ArrayList();
        while( {
            Object o = rowHandler.handle(rs);
        return result;


If I misunderstand something, please, give me advise how to achiev my 
goals in a better way.

Best regards,
Mikhail Krivoshein

To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message