繁体   English   中英

从通过Java中的结果集创建的数组中获取单个值

[英]Get individual values from an array created from a resultset in java

我有一个从ArrayList创建的数组,而ArrayList是从ResultSet创建的。 该数组包含数据库表的行,并且每一行(基于我的查询有几列)作为单个元素存在于数组中。 到现在为止还挺好。 我的问题是如何从我前面说过的现在作为元素存在的每一行中获取单个值(列)。 我可以获得每个元素(当然,行),但这不是我想要的。 每个元素都是多个值的组合,如何获得这些值? 我是一个初学者,真的很困在这里。 我认为这一切都是有道理的。 这是我创建数组的代码。

List resultsetRowValues = new ArrayList();      
while (resultSet.next()){
    for (int i = 1; i <= columnCount; i++) {
        resultsetRowValues.add(resultSet.getString(i));
    }
}

String[] databaseRows = (String[]) resultsetRowValues.toArray(new String[resultsetRowValues.size()]);

编辑:更多说明我的MySQL查询如下:

String query = "SELECT FIRSTNAME, LASTNAME, ADDRESS FROM SOMETABLE WHERE CITY='SOMECITY'";

这将在ResultSet中返回几行。 根据样本查询,数组的每个元素将包含三个值(列),即FIRSTNAME,LASTNAME和ADDRESS。 但是这三个值作为单个元素存在于数组中。 虽然我希望每一列与每个元素(实际上是数据库表的一行)分开。 当我使用for循环遍历aarray并将值打印到控制台时,我得到类似于以下内容的输出:

Doe
Jhon
Some Street (End of First element)
Smith
Jhon
Some Apartment (End of Second element and so on)

从输出中可以明显看出,的每个元素包含三个值,分别打印在单独的行上。 如何获得这些个体价值。

您可能想要这样的东西:

List<Map<String, String>> data = new ArrayList<>();      
while (resultSet.next()){
    Map<String, String> map = new HashMap<>();
    for (int i = 1; i <= columnCount; i++) {
        map.put("column" + i, resultSet.getString(i));
    }
    data.add(map)
}

// usage: data.get(2).get("column12") returns line 3 / column 12

请注意,还有其他可能的选项(2D数组, 番石榴表 ...)

暂无
暂无

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

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