在java中的列表中检索行的值(来自Postgresql)

时间:2016-11-08 10:44:06

标签: java postgresql for-loop arraylist hashmap

我使用HashMap处理我使用RHT建议的代码从PostgreSql查询的ResultSet

public List resultSetToArrayList(ResultSet rs) throws SQLException{
    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.getObject(i));
        }
        list.add(row);
    }

    return list;
}

我做到了,因为我之后想把这个系列洗牌。

现在每行都是这样的:

  {owner=22172613@N07, count=2}

我不知道如何为每个循环检索每个所有者ID和相应的数字!!

1 个答案:

答案 0 :(得分:2)

所以你有一个ArrayList,每个元素都是HashMap,在其键中包含结果的列名,在其值中包含这些列的值。

最有可能帮助您的循环如下:

    //call your method resultSetToArrayList here
     List<Map> list = (List<Map>) resultSetToArrayList(rs);

    //loop the list
    for(Map r: list) {
        System.out.println("row data: ");
        final Iterator columnIterator = r.keySet().iterator();
        while(columnIterator.hasNext()) {
            final Object next = columnIterator.next();
            System.out.println("\tColumn: " + next + " / Value: " + r.get(next));
        }
    }