No vídeo, o professor instancia os objetos fora do try, diferente do que foi feito no método salvar(). Por qual motivo seria um problema instanciar os objetos e fechar os mesmo dentro do try?
try {
PreparedStatement preparedStatement = connection.prepareStatement(sql);
ResultSet resultSet = preparedStatement.executeQuery();
while(resultSet.next()) {
int numero = resultSet.getInt(1);
BigDecimal saldo = resultSet.getBigDecimal(2);
String nome = resultSet.getString(3);
String cpf = resultSet.getString(4);
String email = resultSet.getString(5);
Cliente cliente = new Cliente(new DadosCadastroCliente(nome, cpf, email));
Conta conta = new Conta(numero, cliente);
contas.add(conta);
}
preparedStatement.close();
resultSet.close();
connection.close();
} catch(SQLException e) {
throw new RuntimeException(e.getMessage());
}