gpt4 book ai didi

用于将不明确的结果集作为 ArrayList 返回的 Java、MySQL 方法

转载 作者:太空宇宙 更新时间:2023-11-03 11:25:41 25 4
gpt4 key购买 nike

我正在做一项作业,但对这项任务的措辞感到困惑:

“添加一个名为 getData 的方法,它接受 SQLstring 和字段数。getData 应该执行传入的查询,然后将 ResultSet 转换为简单的二维 ArrayList。”

这是我目前所拥有的...

public ArrayList<ArrayList<String>> getData(String sqlString, int numFields){
Statement stmnt= this.conn.createStatement();

ResultSet rs = stmnt.executeQuery(sqlString);
ArrayList<ArrayList<String>> ary = new ArrayList();
int row = 0;
while (rs.next()){ // Get next row
for (int i = 1; i <= numFields; i++) { // each column
ary[row][i-1] = rs.getString(i);
}
row++;
}
return ary;
}

我遇到错误 error: array required, but ArrayList<ArrayList<String>> found

ary[row][i-1] = rs.getString(i);
^

预先感谢您的帮助和阅读。

编辑:我相信这是最终/正确/工作版本,感谢其他优秀用户提供的答案:) 现在 jGrasp 只是对我大喊大叫捕捉异常。感谢您的帮助!!!

public ArrayList<ArrayList<String>> getData(String sqlString, int numFields){
Statement stmnt= this.conn.createStatement();

ResultSet rs = stmnt.executeQuery(sqlString);
ArrayList<ArrayList<String>> ary = new ArrayList<>();

while (rs.next()){ // Get next row
ArrayList<String> columnsList = new ArrayList<>();
for (int i = 1; i <= numFields; i++) { // each column
columnsList.add(rs.getString(i));
// Add the list of columns to our list of rows
ary.add(columnsList);
}
}
return ary;
}

最佳答案

您需要使用 get() 方法从 ArrayList 中获取特定索引处的元素。您不能使用 [] 获取数组列表中特定索引处的元素。它仅适用于数组,并且您的结果集不是数组,而是 ArrayList。您可以添加到数组列表而不是数组,如下所示,

ArrayList<ArrayList<String>> ary = new ArrayList();
int row = 0;
while (rs.next()){ // Get next row
ArrayList<String> columns = new ArrayList<>();
for (int i = 1; i <= numFields; i++) { // each column
columns.add(rs.getString(i));
}
ary.add(columns)
}

然后他们在列表上使用 get() 方法来检索。

关于用于将不明确的结果集作为 ArrayList 返回的 Java、MySQL 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54602964/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com