Oracle
 sql >> Base de données >  >> RDS >> Oracle

Java SQL Exception :Closed Resultset :suivant même si ni la connexion ni le jeu de résultats ne sont fermés

Votre try-with-resources fait close le ResultSet , mais là n'est pas le vrai problème. Vous devez configurer la Statement avant vous l'exécutez (et préférez PreparedStatement et paramètres de liaison). Quelque chose comme,

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