我正在尝试从我的 MySQL 表中的一行中选择值。
SELECT fortnite,psn,steam,twitch,xbox,youtube
FROM `social_media`
WHERE id = '16483378715464928'
当我尝试将结果转换为字符串时,ResultSet 仅收到第一个“fortnite”行。我的问题是,如何检索以下列并将它们全部放入一个字符串中以返回。
这是我的示例代码:
public static String getSocialMedia(String id) {
String ret = "";
int i = 1;
try {
Statement stmt = null;
ResultSet resultSet = null;
getConnection();
stmt = con.createStatement();
resultSet = stmt.executeQuery("SELECT fortnite,psn,steam,twitch,xbox,youtube FROM `social_media` WHERE id ='" + id + "'");
while(resultSet.next()) {
ret += resultSet.getString(i) + " ";
i++;
}
if(resultSet != null) {
resultSet.close();
}
if(stmt != null) {
stmt.close();
}
} catch (Exception e) {
e.printStackTrace();
}
return ret;
}
最佳答案
这是由于这个而发生的。
while(resultSet.next()) {
ret += resultSet.getString(i) + " ";
i++;
}
在上面的代码中,您需要通过名称或索引获取所有值。 next()
函数为您提供完整的行而不是单个列。
你应该把它改成:
while(resultSet.next()) {
for(i = 1, i <=6, i++){
ret += resultSet.getString(i) + " ";
}
}
关于java - 使用 Java ResultSet 选择多个列值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51699970/