Baixei a versão do github disponivel no modulo 3
Baixei a versão do github disponivel no modulo 3
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
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.