Simone Tripodi created DBUTILS-97:
-------------------------------------

             Summary: Add an AbstractResultSetHandler implementation in order 
to reduce the 
                 Key: DBUTILS-97
                 URL: https://issues.apache.org/jira/browse/DBUTILS-97
             Project: Commons DbUtils
          Issue Type: New Feature
    Affects Versions: 1.6
            Reporter: Simone Tripodi
            Assignee: Simone Tripodi
             Fix For: 1.6


According to the DRY principle (Don't Repeat Yourself), repeating {{resultSet}} 
variable inside the {{ResultSetHandler#handle(ResultSet)}} over and over for 
each iteration can get a little tedious.
It would be helpful adding a support class, named {{AbstractResultSetHandler}}, 
which implicitly gives users access to {{ResultSet}}'s methods. _For example_, 
we could extend {{AbstractResultSetHandler}} and rewrite the mapping below:

{code}
new ResultSetHandler<Collection<Map<String, Object>>> {

    @Override
    public Collection<Map<String, Object>> handle(ResultSet rs) throws 
SQLException {
        Collection<Map<String, Object>> result = new LinkedList<Map<String, 
Object>>();

        while (rs.next()) {
            Map<String, Object> current = new HashMap<String, Object>();
            for (int i = 1; i <= rs.getMetaData().getColumnCount(); i++) {
                current.put(rs.getMetaData().getColumnName(i), rs.getObject(i));
            }

            result.add(current);
        }

        return result;
    }

}
{code}

as:

{code}
new AbstractResultSetHandler<Collection<Map<String, Object>>> {

    @Override
    protected Collection<Map<String, Object>> handle() throws SQLException {
        Collection<Map<String, Object>> result = new LinkedList<Map<String, 
Object>>();

        while (next()) {
            Map<String, Object> current = new HashMap<String, Object>();
            for (int i = 1; i <= getMetaData().getColumnCount(); i++) {
                current.put(getMetaData().getColumnName(i), getObject(i));
            }

            result.add(current);
        }

        return result;
    }

}
{code}


--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to