简体   繁体   English

如何有效地获取“ AS”列名称,例如ResultSetMetaData?

[英]How to effectively get “AS” column name like ResultSetMetaData?

I am doing this in order to read the result set into an array of hashmaps: 我这样做是为了将结果集读取到哈希表数组中:

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);
        }

but when I do a query that is like "SELECT id AS contact_id from contacts" I am obviously getting id=>#### instead of the desired contact_id. 但是当我执行类似“从联系人中选择SELECT ID AS contact_id”的查询时,我显然会得到id => ####而不是所需的contact_id。 What is the best way to go about this? 最好的方法是什么? This topic is super hard to search for. 这个主题很难找到。 :P Thanks! :P谢谢!

Got it. 得到它了。 The answer was to search for "get column alias": 答案是搜索“获取列别名”:

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

Changed to: 变成:

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);
        }

works great. 效果很好。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM