java.sql.SQLException:结果集已关闭

问题描述 投票:-2回答:1

当我尝试执行我的代码时,我收到错误:

错误[TripDAO] TripDAO:findAllTripsByActivityId() java.sql.SQLException:结果集已关闭。

我收到错误的方法如下:

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

我不知道这段代码可能有什么问题。你能帮助我吗?

java resultset sqlexception
1个回答
0
投票

您正在将整个ResultSet传递给setInObject方法,这可能会破坏它。尝试从findAllTripsByActivityId方法中的结果集中提取值。

© www.soinside.com 2019 - 2024. All rights reserved.