gpt4 book ai didi

java - 尽管表中有很多行,JDBC ResultSet 只给出一行?

转载 作者:行者123 更新时间:2023-11-29 09:38:02 25 4
gpt4 key购买 nike

我在表中有很多行,我在我的数据库 MySql 上运行了相同的查询,但 java ResultSet 只给出了表的第一行。这是我的代码。

public ArrayList<String> getAllAlbumsName(Integer uid) {
ArrayList<String>allAlbumsName = new ArrayList<String>();
try {
String qstring = "SELECT albumname FROM picvik_picture_album WHERE " +
"uid = '" + uid + "';";

System.out.println(qstring);
connection = com.picvik.util.MySqlConnection.getInstance().getConnection();
ptmt = connection.prepareStatement(qstring);
resultSet = ptmt.executeQuery();
if(resultSet.next()) {
System.out.println(resultSet.getString("albumname"));
allAlbumsName.add(resultSet.getString("albumname"));
}

resultSet.close();
ptmt.close();
connection.close();


} catch (Exception e) {
e.printStackTrace();
}
return allAlbumsName;
}

最佳答案

if(resultSet.next()) {
System.out.println(resultSet.getString("albumname"));
allAlbumsName.add(resultSet.getString("albumname"));
}

如果你想获取所有行,应该是:

while(resultSet.next()) {
System.out.println(resultSet.getString("albumname"));
allAlbumsName.add(resultSet.getString("albumname"));
}

while语句在特定条件为真时连续执行语句 block

注意:正如@BalusC 评论的那样,您的代码会引入 SQL 注入(inject)攻击,最好使用 ptmt.set... 而不是手动构造 SQL String。

关于java - 尽管表中有很多行,JDBC ResultSet 只给出一行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14106691/

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