迭代通过数组传递的结果集

时间:2014-02-17 15:35:41

标签: java arraylist resultset

我已将ArrayList传递给另一个方法。 在这个方法中,我需要从ArrayList中提取结果集并迭代它。 结果集没有问题。

问题是尝试从Array中提取结果集,因此我无法做到 resultSet = GUIsidearray.get(0);不起作用,因此我不能这样做 而(resultSet.next())。

请参阅下面的一些代码示例。 任何帮助将不胜感激。

public void updateLocal(ArrayList<ArrayList<Object>> GUIsidearray) {

    System.out.println("Get passed Array Value " + GUIsidearray.get(0));
    // Shown in console -> Get passed Array Value
    // [sun.jdbc.odbc.JdbcOdbcResultSet@1adc30] //

    ResultSet resultSet
    resultSet = GUIsidearray.get(0);

    boolean emptyRs = true;

    try {
        while (resultSet.next()) {
            emptyRs = false; // If ResultSet is empty

            String Serno = (resultSet.getString("Serialnumber"));
            System.out.println("Serial Number " + Serno);
        }
    } catch (SQLException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
}

2 个答案:

答案 0 :(得分:0)

我想你想要

while(resultSet.hasNext())

而不是

while(resultSet.next())

因为第一个返回一个布尔值,你实现的那个返回resultSet的下一个元素。

答案 1 :(得分:0)

请注意印刷表示如何:

[sun.jdbc.odbc.JdbcOdbcResultSet@1adc30]

而不是这个:

sun.jdbc.odbc.JdbcOdbcResultSet@1adc30

这表明您尝试访问的ResultSet内部列表的第一个元素。所以这应该有效:

ResultSet resultSet = (ResultSet) GUIsidearray.get(0).get(0);

请注意,几乎肯定有更好的方法来获取ResultSet如果没有完整的例子,很难说;你可能会让事情变得比他们需要的更复杂。提示:告诉我们GUIsidearray来自哪里。