解决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);
简单方便…
作者:czjie
出处:http://www.cnblogs.com/czjie/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。