--- Mikhail Krivoshein <[EMAIL PROTECTED]> wrote:
> 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
> JavaBean.
> 2) use ListHandler (sources bolow) to convert ResultSet into List with
> help from ResultSetHandler from point 1.
Doesn't BeanListHandler provide this exact behavior?
David
>
> ListHandler
> ======================
> 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 <[EMAIL PROTECTED]>
> * @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(rs.next()) {
> Object o = rowHandler.handle(rs);
> result.add(o);
> }
> 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: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
__________________________________
Do you Yahoo!?
Friends. Fun. Try the all-new Yahoo! Messenger.
http://messenger.yahoo.com/
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]