commons-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Simone Tripodi (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (DBUTILS-97) Add an AbstractResultSetHandler implementation in order to reduce redundant 'resultSet' variable invocation
Date Fri, 21 Sep 2012 08:59:07 GMT

    [ https://issues.apache.org/jira/browse/DBUTILS-97?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13460370#comment-13460370
] 

Simone Tripodi commented on DBUTILS-97:
---------------------------------------

Any other though, Bill? If you don't have objections, I'll check it in!

TIA!
                
> Add an AbstractResultSetHandler implementation in order to reduce redundant 'resultSet'
variable invocation
> -----------------------------------------------------------------------------------------------------------
>
>                 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
>
>         Attachments: DBUTILS-97.patch
>
>
> 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
For more information on JIRA, see: http://www.atlassian.com/software/jira

Mime
View raw message