1
resposta

[Bug] Erros no Código

Além do erro anunciado pelo instrutor no final do curso sobre a ausência do 6o Parâmetro

String sql = "INSERT INTO conta (numero, saldo, cliente_nome, cliente_cpf, cliente_email, esta_ativa)" +
                "VALUES (?, ?, ?, ?, ?, ?)";

Encontrei um erro que não permitia o depósito pois o BD estava sendo fechado antes do Commit. Assim, o código corrigido fica:

    public void alterar(Integer numero, BigDecimal valor) {
        PreparedStatement ps;
        String sql = "UPDATE conta SET saldo = ? WHERE numero = ?";

        try {
            conn.setAutoCommit(false);

            ps = conn.prepareStatement(sql);

            ps.setBigDecimal(1, valor);
            ps.setInt(2, numero);

            ps.execute();
            ps.close();
            conn.commit();   //estava depois do conn.close não permitindo a transação no BD
            conn.close();

        } catch (SQLException e) {
            try {
                conn.rollback();
            } catch (SQLException ex) {
                throw new RuntimeException(ex);
            }
            throw new RuntimeException(e);
        }
    }
1 resposta

Olá, Audrey! Tudo bem?

Que bom que você está atento aos detalhes do código e conseguiu identificar e corrigir o problema relacionado ao fechamento do banco de dados antes do commit.

Realmente, a ordem das operações é crucial para garantir que as transações sejam corretamente aplicadas ao banco de dados.

Continue mergulhando em tecnologia e se tiver dúvidas, conte com o fórum.

Abraços e bons estudos!