try-with-resources
của bạn không close
ResultSet
, nhưng đó không phải là vấn đề thực sự. Bạn cần thiết lập Statement
trước bạn thực thi nó (và thích PreparedStatement
và ràng buộc các tham số). Một cái gì đó như,
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;
}
}
}