这个java错误是什么意思

时间:2014-12-12 09:17:30

标签: java sql exception

我正在尝试从我的数据库中检索数据,这是我的代码,然后是错误。出了什么问题?任何帮助都要理解为什么它会返回错误信息。

我的代码:

String query = "SELECT * FROM ebloodfinder.tempids";

try {
    int a = db.updateResult(query).getInt("did");
    int b = db.updateResult(query).getInt("bid");
    dor.setDid(++a);
    dor.setBid(++b);
} catch (ClassNotFoundException | SQLException ex) {
    Logger.getLogger(testForm.class.getName()).log(Level.SEVERE, null, ex);
}

jtxt_Did.setText(dor.getDid()+"");
jtxt_Did_DR.setText(dor.getBid()+"");

发生此异常:

/*  Dec 12, 2014 2:22:37 PM extra.testForm <init>
SEVERE: null
java.sql.SQLException: Before start of result set*/

2 个答案:

答案 0 :(得分:2)

您需要将光标移动到第一行,然后请求数据。

int a = 0, b = 0;

try {
    ResultSet rs = db.updateResult(query)

    if (rs.next()) { 
        a = rs.getInt("did");
        b = rs.getInt("bid");
    }
} 
catch (ClassNotFoundException | SQLException ex) {
    //blah blah
}

答案 1 :(得分:0)

当您在ResultSet中获得结果时,其光标位于Before First

位置

Some Hint

假设数据是从第1行开始,那么光标将为0。

您需要做的是将光标移动到第一个位置以读取数据。

要执行此操作,您需要调用rs.next()方法,此方法返回boolean。如果它移动到下一个位置则为真,如果没有其他位置则为假。

可以使用相同的方法迭代从服务器获取的所有行。

while(rs.next()){
    //get data
}