为什么这个查询不起作用?

时间:2013-07-11 13:47:10

标签: java sql database

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

 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);
    }

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

但是当涉及到行ResultSet result = (ResultSet) query.executeQuery();时,它会突然跳到最后一行,其中包含“}”。它甚至没有进入catch块,所以我看不出问题。

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

由于

编辑:查询成功执行。现在在executequery行之后我就这样做了:

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

这给了我一个错误:

 java.sql.SQLException: Before start of result set

有谁能告诉我这里的问题?

1 个答案:

答案 0 :(得分:1)

当您调试代码时,一旦您处于ResultSet result = (ResultSet) query.executeQuery();行,因为在try块之后没有其他任何内容,如果您进入下一步,它将会跳到街区的尽头。

因此,您的查询可能实际上工作正常,您只需要在块中执行某些操作,因为您在块中分配了ResultSet

修改:检查此answer是否存在其他问题。