Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Por que não posso declarar e fechar o preparedStatement e o resultSet dentro do try, logo após o while?

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());
    }
1 resposta
solução!

Gabriel Boa noite!

Normalmente colocamos dentro do try somente o código que pode gerar alguma exceção, e instanciar o PreparedStatement e o ResultSet não causa exceção é uma boa prática intanciá-los fora. Mas não seria problema também instanciar dentro, desde que não precise usar no catch ou na Exception