Как закрыть набор результатов при явной реализации ResultSetExtractor

#java #sql #spring #resultset #spring-jdbc

Вопрос:

 public class AddressRowMapper implements ResultSetExtractor<List<Address>> {

    @Override
    public List<Address> extractData(ResultSet rs) throws SQLException, DataAccessException {
        List<Address> addresses = new ArrayList<>();
        

        while (rs.next()) {
                Address address = new Address();
                address.setCity(rs.getString("CITY") == null ? "" : rs.getString("CITY"));
                address.setState(rs.getString("STATE") == null ? "" : rs.getString("STATE"));
                address.setZip(rs.getString("ZIP") == null ? "" : rs.getString("ZIP"));
                
            addresses.add(address);
        }
        return addresses;
    }
 

Комментарии:

1. Нужно ли закрывать ResultSet от ResultSetExtractor ?

Ответ №1:

От: https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/jdbc/core/ResultSetExtractor.html

rs — набор результатов для извлечения данных. Реализации не должны закрывать это: оно будет закрыто вызывающим JdbcTemplate.