【问题标题】:What is meaning of this java error这个java错误是什么意思
【发布时间】:2015-02-10 23:14:36
【问题描述】:

我正在尝试从我的数据库中检索数据,这是我的代码,然后是错误。怎么了?在弄清楚为什么它返回错误消息时,任何帮助表示赞赏。

我的代码:

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*/

【问题讨论】:

  • 一个问题不能接受两个答案。每个问题您只能接受一个答案。你应该接受哪个是更好的解决方案。 :)

标签: java sql exception


【解决方案1】:

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

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
}

【讨论】:

    【解决方案2】:

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

    Some Hint

    如果数据从第一行开始,那么光标将在 0 处。

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

    为此,您需要调用rs.next() 方法,此方法返回boolean。如果它移动到下一个位置则为真,如果没有更多的位置则为假。

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-11-29
      • 2011-03-01
      • 2012-11-06
      相关资源
      最近更新 更多