[RESOLVIDO] ResultSet closed

Olá. Gostaria de saber por que o ResultSet está fechado nessa implementação, se não indiquei para ele fechar:

public ResultSet select(int idUser, int idGrupo) throws SQLException {
    ConexaoMySQL conexao;
    Statement statement;
    String select = " select * from random.string";
    conexao=ConexaoMySQL.getInstance();
    conexao.conectar();
    statement = conexao.criarStatement();
    try {
        return statement.executeQuery(select);
    }finally {
        statement.close();
    }
}

Implementação:

            try {
                resultSet = db.select(modeloRabbit.getId_usuario(),modeloRabbit.getId_grupo());
                System.out.println(resultSet.isClosed()); //retorna true, impedindo de trabalhar com ele
            } catch (SQLException e) {
                e.printStackTrace();
            }

Ao fechar o statement , o resultset associado também é fechado. E o finally é executado antes de o método encerrar, então, mesmo com um return antes, o statement é sempre fechado.

Referência: https://docs.oracle.com/javase/7/docs/api/java/sql/Statement.html#close()

Abraço.

1 curtida

Grato, TerraSkilll. Ótima explicação.