解决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);
 
简单方便…

你可能感兴趣的:(DbUtils)