Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Exceção Java SQL:Conjunto de resultados fechado:próximo, mesmo que nenhuma conexão ou conjunto de resultados seja fechado


Seu try-with-resources faz close o ResultSet , mas esse não é o verdadeiro problema. Você precisa configurar a Statement antes você o executa (e prefere PreparedStatement e parâmetros de ligação). Algo como,
public Integer findByName(String name) throws SQLException {
    String sql = "select id from artists where name=?";
    Connection con = Database.getConnection();
    try (PreparedStatement stmt = con.prepareStatement(sql)) {
        stmt.setString(1, name);
        try (ResultSet rs = stmt.executeQuery()) {
            return rs.next() ? rs.getInt(1) : null;
        }
    }
}