java - 使用 Java ResultSet 选择多个列值

标签 java mysql sql

我正在尝试从我的 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/

相关文章:

java - Android:使用 ActionBar 时出现 NullPointerException

java - 为列表属性创建 PATCH 端点

php - 如何使用 XAMPP 从我的表单中获取信息以插入到 mySQL 数据库中?

java - TestNG 多个测试类 - 运行其他类

php - 如何处理 while 循环内的 foreach 中的空数组键?

mysql - 请求者和技术人员两类用户的数据库设计

python - SQLAlchemy 错误 : "argument formats can' t be mixed"when inputting variables

c# - 如何从 C# 代码确定 SQL Server 中存储的按位代码值

python - 为什么在测试中没有将查询添加到 Django 的 db.connection.queries 中?

java - Android 上的 onActivityResult 方法内的全局变量值未更改