2

嗨,我是 Java 新手,我是如何用谷歌搜索并获得连接数据库和检索值的代码的。

问题是ResultSet仅从表的第一行获取值

这是代码..

String stmt = "select * from tablename";
ResultSet resultSet = statement.executeQuery(stmt);
while(resultSet.next())
 {
    String val = resultSet.getString(3);
    System.out.println(val);
 } 

它只返回第一行的第三个值(因为我已经提到过,我只需要该列值),但我需要获取每行的第三个值(列)并将其存储在一个数组中。

4

1 回答 1

1

您发布的代码应该已经在每行中获得第三个值。您所展示的内容并没有明显的问题。这只是尝试不同的事情并弄清楚你认为你知道那是不正确的事情。

验证查询在 Squirrel 等 SQL 客户端或您手边的任何工具中是否可以单独运行。

添加 printlns 或日志记录以验证您实际上正在执行具有查询的代码部分。

在代码中的 println 中添加一些文本,这样如果值为空,您仍然会看到写入的内容。

更改查询以明确声明该列而不是依靠*,因此它看起来像select mystuff from tablename,并查看您是否可以使该查询工作。

一旦您准备好添加存储值的部分,您最好使用 ArrayList 而不是数组,因为列表会在您添加内容时调整大小。ArrayList 由数组支持,ArrayList 会为您调整大小。如果你真的需要一个数组,你可以调用toArray列表中的方法来创建一个数组。所以它看起来像:

List<String> list = new ArrayList<String>();
while(resultSet.next())
{
    String val = resultSet.getString(3);
    list.add(val);
    System.out.println(val);
}
String[] vals = list.toArray(new String[] {});
于 2013-04-26T15:33:21.497 回答