【问题标题】:resultset to get values from next row从下一行获取值的结果集
【发布时间】:2013-04-26 15:13:47
【问题描述】:

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

问题是ResultSet 仅从表的 FIRST ROW 获取值

这里是代码..

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

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

【问题讨论】:

    标签: arrays jdbc resultset


    【解决方案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[] {});
    

    【讨论】:

    • nthg 为我工作,while(resultSet.next()) 实际上会从我在许多文档中阅读的每一行中获取数据,但其中一个不起作用......
    • @Yashhy:resultSet.next 很可能没问题。别的东西坏了。继续寻找。
    猜你喜欢
    • 2012-08-11
    • 1970-01-01
    • 1970-01-01
    • 2017-04-22
    • 2013-12-31
    • 2011-12-20
    • 2019-07-20
    • 1970-01-01
    • 2021-03-26
    相关资源
    最近更新 更多