0

我通过 JDBC (Java) 使用 MySQL 命令来更改我的数据库。我已经实现了以下方法来返回列的值。目标是使列(行)中的位置与它们在数组中的位置(索引)相对应。这适用于字符串列,但对于数字列,ResultSet 似乎将它们按升序排列,从而使它们在返回的字符串数组中的位置不反映它们在列中的位置。'rs' 是 ResultSet 引用变量。

public String[] getColumnContents(String tableName, String columnName) {
    String sql = "SELECT " + columnName + " FROM " + tableName;
    String[] results = new String[SQLManager.getColumnLength(tableName, columnName)];

    try {
       rs = statement.executeQuery(sql);

       for (int counter = 0; rs.next(); counter++) {
            results[counter] = rs.getString(columnName);
       }

    } catch (SQLException e) {
       e.printStackTrace();
    }

    return results;

}
4

1 回答 1

1

就像在 SQL 命令中添加 ORDER BY 子句一样简单。这是我的工作方法:

public String[] getColumnContents(String tableName, String columnName) {
String sql = "SELECT " + columnName + " FROM " + tableName + " ORDER BY " + columnName1 + " ASC, " + columnName2 + " ASC";

String[] results = new String[SQLManager.getColumnLength(tableName, columnName)];

try {
    rs = statement.executeQuery(sql);

    for (int counter = 0; rs.next(); counter++) {
        results[counter] = rs.getString(columnName);
    }
} catch (SQLException e) {
    e.printStackTrace();
}

return results;

}
于 2012-11-26T04:16:44.980 回答