0

我正在写一个非常非常简单的查询。但我找不到错误。这是代码:

 con = DBConnect.connect();

 try {
    PreparedStatement query = (PreparedStatement) con.prepareStatement("SELECT * FROM accounts where iban=?");
    query.setString(1, iban);

    ResultSet result = (ResultSet) query.executeQuery();
    double oldBalance;
    } catch (SQLException e) {
         System.out.println(e);
    }

我确信该表的名称是帐户,并且存在一个名为 iban 的 varchar 类型的列。我进行了调试,因此我确信该query.setString(1, iban);行正确设置了 iban。

但是当涉及到该行时ResultSet result = (ResultSet) query.executeQuery(); ,它突然跳到最后一行,由"}"组成。它甚至没有进入 catch 块,所以我看不到问题。

有人可以告诉我这里有什么问题吗?

谢谢

编辑:看起来查询成功执行。现在在执行查询行之后,我只是这样做:

double oldBalance=result.getDouble("iban");

这给了我一个错误:

 java.sql.SQLException: Before start of result set

谁能告诉我这里的问题?

4

1 回答 1

1

当你调试你的代码时,一旦你上ResultSet result = (ResultSet) query.executeQuery();线了,因为在块中没有其他事情要做try,如果你进入下一步,它将跳转到块的末尾。

因此,您的查询实际上可能工作正常,您只需要在块中对其进行处理,因为您ResultSet是在块中分配的。

编辑:检查此答案以解决您的其他问题。

于 2013-07-11T13:52:49.440 回答