2012-10-12 2 views
4

자바에서 간단한 CRUD 응용 프로그램을 코딩 중이며 청구서와 함께 제공되는 Produkts를 선택하는 방법이 있습니다. 여기 SQLException - 유효하지 않은 커서 상태

내 코드입니다 :

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은 첫 번째 행 앞에 배치됩니다.

모든 테이블과 엔티티가 존재합니다. 그래서 내 질문은 :

그 의미는 무엇입니까?

답변 해 주셔서 감사합니다.

추신 : 나는 hsql db를 사용 중입니다!

답변

10

액세스하기 전에 rs2.next()을 호출하지 않았습니다. erg.setId(rs2.getInt(1));

관련 문제