2012-04-02 7 views
-2

Здравствуйте, когда я пытаюсь выполнить свой код, я получаю ошибку:java.sql.SQLException: результирующий набор закрыт

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

методы, где я получаю сообщение об ошибке выглядит так:

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; 
} 

У меня есть не знаю, что это может быть неправильно в этом коде. Вы можете мне помочь?

+4

Вы бы распечатывали всю трассировку стека? Возможно, основной поток закрывается по какой-то причине. –

+0

Где-то в этом '...' вы не публикуете, вы закрываете результирующий набор. –

+0

Извините, о моем ответе, я совершенно неправильно понял вопрос. – everton

ответ

0

Вы передаете весь ResultSet методу setInObject, что, вероятно, нарушает его. Попробуйте извлечь значения из набора результатов в свой метод findAllTripsByActivityId.

Смежные вопросы