SQLException - 游标状态无效

时间:2012-10-12 21:04:21

标签: java database eclipse exception hsqldb

我在java编写一个简单的CRUD应用程序,我有一个方法来选择与账单一起使用的产品。

这是我的代码:

public Rechnung selectProdukte(int target){
    int tempProdukt;
    int tempAnzahl;
    try {
        PreparedStatement ps1=hsqlmanager.getConnection().prepareStatement("SELECT produkt, anzahl from gekauftes_produkt " +
                "WHERE rechnung= " + target + ";");
        //ps1.setInt(1, target);
        //Query 1wird executiert

        PreparedStatement ps2 = hsqlmanager.getConnection().prepareStatement("SELECT * FROM rechnung WHERE id= " + target + ";");
        //ps2.setInt(1, target);
        ResultSet rs1 = ps1.executeQuery();
        ResultSet rs2 = ps2.executeQuery();
        Rechnung erg=new Rechnung(); 
        erg.setId(rs2.getInt(1));
        erg.setDatum(rs2.getDate(2));
        erg.setSumme(rs2.getDouble(3));
        while(rs1.next()){
            tempProdukt=rs1.getInt(1);
            tempAnzahl=rs1.getInt(2);
            erg.addGekauftTupel(tempProdukt, tempAnzahl);
        }
        ps1.close();
        ps2.close();
        return erg;
    } catch(Exception e) {
        log.error("Fehler in DAO Rechnung  - selectProdukte: " + e);
    }
    return null;
}

当我按下按钮执行代码时,我得到:

  

java.sql.SQLException:游标状态无效:标识符游标不是   在UPDATE,DELETE,SET或GET语句中定位在行上:;   ResultSet位于第一行

之前

我检查了数据库,并且存在所有表和实体。所以我的问题是:

这是什么意思?

感谢您的回答!

PS:我正在使用hsql db!

1 个答案:

答案 0 :(得分:10)

在访问rs2.next()

之前,您尚未致电erg.setId(rs2.getInt(1));