我有一个数组,它是从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阵列、番石榴表…)