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

Faça como eu fiz: atualizando o saldo

Classe ContaDAO.java utilizando Transactions (Transações) no SQL, conforme orientação do artigo Transações no SQL: Mantendo os dados íntegros e consistentes:

public void alterar(Integer numero, BigDecimal valor) {
    PreparedStatement ps = null;
    String sql = "UPDATE conta SET saldo = ? WHERE numero = ?";
    
    try {
        // Iniciando a transação
        conn.setAutoCommit(false);

        ps = conn.prepareStatement(sql);
        ps.setBigDecimal(1, valor);
        ps.setInt(2, numero);

        ps.executeUpdate();

        // Confirmar transação com commit
        conn.commit();
        
    } catch (SQLException e) {
        // Reverter transação caso haja algum erro utilizando o rollback
        try {
            if (conn != null) {
                conn.rollback();
            }
        } catch (SQLException ex) {
            throw new RuntimeException("Erro ao reverter a transação", ex);
        }
        throw new RuntimeException("Erro ao atualizar conta", e);
    } finally {        
        try {
            if (ps != null) {
                ps.close();
            }
            if (conn != null) {
                conn.setAutoCommit(true);
                conn.close();
            }
        } catch (SQLException ex) {
            throw new RuntimeException("Erro", ex);
        }
    }
}
1 resposta
solução!

Bom dia!

Sua resolução ficou excelente! Você fez um ótimo uso do aprendizado.

Parabéns pelo empenho nos estudos e continue praticando.

Para que mais pessoas consigam visualizar a sua solução proposta, é recomendado que você marque este tópico como solucionado. Assim pode ajudar ainda mais pessoas :)

Bons estudos!