gpt4 book ai didi

Java/MySql - 获取一行并将其转换为 arraylist

转载 作者:行者123 更新时间:2023-11-30 08:12:36 27 4
gpt4 key购买 nike

我正在尝试获取一行并将其转换为数组我已经尝试将 resultset.getArray() 转换为 ArrayList 但由于某种原因它没有返回任何东西有人帮助我

现在编码:

public ArrayList<String> getReport(String name) {
try {
Statement sql = mySql.getConnection().createStatement();
ResultSet resultSet = sql.executeQuery("SELECT * FROM `reports` WHERE `reportedplayer`='" + name + "';");
if(!resultSet.next()) {
sql.close();
resultSet.close();
return null;
}
ArrayList<String> rowValues = new ArrayList<String>();
while (resultSet.next()) {
rowValues.add(resultSet.getString("reason"));
}
sql.close();
resultSet.close();
return rowValues;
}catch (SQLException e) {
e.printStackTrace();
return null;
}
}

最佳答案

您应该从结果集元数据中读取列名称,然后迭代每一行的名称。也许更好的主意是将参数存储为 ArrayList<HashMap<String,String>>比成ArrayList<String> ,因为 select * 没有说明您阅读的文件的顺序。但是,如果您确定只有一行,并且您知道顺序,或者顺序可能无关紧要,您可以使用如下内容:

public ArrayList<String> getReport(String name) {
try {
Statement sql = mySql.getConnection().createStatement();
ResultSet resultSet = sql.executeQuery("SELECT * FROM `reports` WHERE `reportedplayer`='" + name + "';");
if(!resultSet.next()) {
sql.close();
resultSet.close();
return null;
}
ArrayList<String> rowValues = new ArrayList<String>();
int columnCount = resultSet.getMetaData().getColumnCount();
String[] columnNames = new String[columnCount];
for (int idx=0; idx<columnCount; idx++) {
columnNames[idx] = resultSet.getMetaData().getColumnName(idx);
}

while (resultSet.next()) {
for (String columnName: columnNames) {
rowValues.add(resultSet.getString(columnName));
}
}
sql.close();
resultSet.close();
return rowValues;
}catch (SQLException e) {
e.printStackTrace();
return null;
}
}

关于Java/MySql - 获取一行并将其转换为 arraylist<String>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30354763/

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