如何有效地获得像ResultSetMetaData这样的“AS”列名?

时间:2014-02-20 19:46:51

标签: java mysql resultset

我这样做是为了将结果集读入一个哈希映射数组:

ResultSetMetaData md = rs.getMetaData();
        int columns = md.getColumnCount();
        ArrayList list = new ArrayList(50);
        while (rs.next()){
            HashMap row = new HashMap(columns);
            for(int i=1; i<=columns; ++i){           
                row.put(md.getColumnName(i),rs.getString(i));
            }
            list.add(row);
        }

但是当我进行类似“SELECT id AS contact_id from contacts”的查询时,我显然得到id =&gt; ####而不是所需的contact_id。最好的方法是什么?这个主题非常难以搜索。 :P谢谢!

1 个答案:

答案 0 :(得分:0)

知道了。答案是搜索“获取列别名”:

http://docs.oracle.com/javase/6/docs/api/java/sql/ResultSetMetaData.html

更改为:

ResultSetMetaData md = rs.getMetaData();
        int columns = md.getColumnCount();
        ArrayList list = new ArrayList(50);
        while (rs.next()){
            HashMap row = new HashMap(columns);
            for(int i=1; i<=columns; ++i){           
                row.put(md.getColumnLabel(i),rs.getString(i));
            }
            list.add(row);
        }

效果很好。