Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

[Bug] Esta dando esse erro na hora de rodar a aplicação

Insira aqui a descrição dessa imagem para ajudar na acessibilidade Baixei a versão do github disponivel no modulo 3

3 respostas

Olá Bruno,

Você obterá esse erro ao chamar qualquer um dos métodos setXxx() da PreparedStatement, enquanto que a string SQL não possui nenhum espaço reservado ? para setar o parâmetro.

Dá uma olhada no código da ContaDAO.java, se precisar de ajuda para analisar envia o código da ContaDAO e ContaService aqui no post, por favor

solução!

Boa noite Bruno

O erro aponta para a quantidade de parâmetros que você esta passando na classe ContaDAO. Ou então esta passando o número errado no indíce.

Na variável que recebe a String sql, são apenas cinco parâmetros. E pelo erro apontado, você esta informando 6. Veja se a sequência na numeração dos parâmetros esta correta: 1, 2, 3, 4, 5.

public void salvar(Cliente cliente, Conta conta) {
        String sql = "INSERT INTO conta (numero, saldo, cliente_nome, cliente_cpf, cliente_email) " +
                "VALUES (?, ?, ?, ?, ?)";

        try {
            PreparedStatement preparedStatement = conn.prepareStatement(sql);
            preparedStatement.setInt(1, conta.getNumero());
            preparedStatement.setBigDecimal(2, BigDecimal.ZERO);
            preparedStatement.setString(3, cliente.getNome());
            preparedStatement.setString(4, cliente.getCpf());
            preparedStatement.setString(5, cliente.getEmail());

            preparedStatement.execute();
            preparedStatement.close();

            this.conn.close();

        } catch (SQLException e) {
            throw new RuntimeException(e);
        }
    }

É por conta da quantidade de parametros na ContaDAO.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software