【问题标题】:Get individual values from an array created from a resultset in java从java中的结果集创建的数组中获取单个值
【发布时间】:2015-04-22 11:24:03
【问题描述】:

我有一个从 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 没有意义,你最终得到 line1-row1 ... line1-rowX 后跟 line2-row1 ... line2-rowX ,这是一个问题。
  • @Saurabh Jhunjhunwala 我提供了更多细节。

标签: java arrays resultset


【解决方案1】:

你可能想要这样的东西:

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

请注意,还有其他可能的选项(二维数组、guava Table、...)

【讨论】:

  • 感谢您的回答,但"row" 是什么?
  • 已修改,抱歉
猜你喜欢
  • 2021-03-26
  • 1970-01-01
  • 2019-01-09
  • 1970-01-01
  • 2011-03-04
  • 2023-04-05
  • 1970-01-01
  • 2017-08-27
  • 1970-01-01
相关资源
最近更新 更多