解决Dbutils返回MAP数据无序的问题

今天在做项目开发的时候,发现数据库查询返回的数据列名顺序不对,查询语句为select id,name from info_user,按道理返回的列顺序应该是id,name,但是由于HashMap的无序性,造成返回的数据是name,id,对此,我重写了MapListHandler的handleRow方法,故将代码备份如下:

public class LinkMapListHandler extends MapListHandler{

    @Override
    protected Map<String, Object> handleRow(ResultSet rs) throws SQLException {
        Map<String, Object> result = new LinkedHashMap<String, Object>();
        ResultSetMetaData rsmd = rs.getMetaData();
        int cols = rsmd.getColumnCount();
        for (int i = 1; i <= cols; i++) {
            result.put(rsmd.getColumnName(i), rs.getObject(i));
        }
        return result;
    }
}
 
调用语句:
list = (List<Map<String, Object>>) queryRunner.query(sql,new LinkMapListHandler(), params);
 
简单方便…

posted on 2012-10-15 11:04  czjie  阅读(1444)  评论(0编辑  收藏  举报

导航