2012-04-02 5 views
-2

Hallo geschlossen, wenn ich versuche, meinen Code auszuführen ich Fehler:java.sql.SQLException: Die Ergebnismenge wird

ERROR [TripDAO] TripDAO: findAllTripsByActivityId() 
      java.sql.SQLException: The result set is closed. 

Methoden, wo ich Fehler angezeigt wie folgt aussieht:

public List<Trip> findAllTripsByActivityId(int id) { 
    List<Trip> trips = new ArrayList<Trip>(); 

    if (obtainConnection()) { 
     try { 
      PreparedStatement stm = null; 
      ResultSet rs = null; 
      stm = con.prepareStatement(findAllTripsByActivityIdQuery 
        .toString()); 
      logger.info("Wybrano id: " + id); 
      stm.setInt(1, id); 
      rs = stm.executeQuery(); 
      while (rs.next()) { 
       trips.add(setInObject(rs)); 
      } 
     } catch (Exception e) { 
      logger.error("TripDAO: findAllTripsByActivityId() " + e); 
     } finally { 
      closeConnection(); 
     } 
    } 
    return trips; 
} 

public Trip setInObject(ResultSet rs) throws SQLException { 
    Trip trip = new Trip(); 
    int id = rs.getInt("id"); 
    trip.setId(id); 
    ... 
    return trip; 
} 

Ich habe keine Ahnung, was in diesem Code falsch sein könnte. Kannst du mir helfen?

+4

würden Sie den gesamten Stack-Trace drucken? Vielleicht wird der zugrunde liegende Stream aus irgendeinem Grund geschlossen. –

+0

Irgendwo in diesem '...' Sie nicht veröffentlichen, schließen Sie die Ergebnismenge. –

+0

Sorry über meine Antwort, ich habe die Frage komplett falsch gelesen. – everton

Antwort

0

Sie übergeben das gesamte ResultSet an die setInObject-Methode, die wahrscheinlich ist, was es bricht. Versuchen Sie, die Werte aus der Ergebnismenge in Ihrer Methode findAllTripsByActivityId zu extrahieren.

Verwandte Themen