Implementando o saque na conta:
public void realizarSaque(Integer numeroDaConta, BigDecimal valor) {
var conta = buscarContaPorNumero(numeroDaConta);
// Verifica se o valor do saque é maior que zero
if (valor.compareTo(BigDecimal.ZERO) <= 0) {
throw new RegraDeNegocioException("Valor do saque deve ser superior a zero!");
}
// Verifica se a conta possui saldo suficiente
else if (valor.compareTo(conta.getSaldo()) > 0) {
throw new RegraDeNegocioException("Saldo insuficiente!");
}
// Caso o valor seja válido e haja saldo suficiente, o saque será realizado
else {
BigDecimal novoValor = conta.getSaldo().subtract(valor);
Connection conn = connection.recuperarConexao();
new ContaDAO(conn).alterar(conta.getNumero(), novoValor);
}
}