[RESOLVIDO] BASICO - Inserir dado CPF no banco SQL utilizando o eclipse

3 respostas
mysql
B

Ola, estou realizando uma conexão de java com sql e estou tendo um problema no momento de inserção do dado CPF no banco, segue a parte do código que executa a query:

try {

String query = "INSERT INTO paciente values  ("+ cpf +", '"+ nome +"', '"+ sobrenome +"', '"+ idade +"');";
	System.out.println(query);
	this.statement.executeUpdate(query);
	
}catch(Exception e){
	System.out.println("Erro: "+ e.getMessage());
}

Previamente solicito as variáveis por um JOptionPane.showInputDialog, o principal problema é que quando digito um CPF com 11 caracteres o seguinte erro é apresentado na console:

Exception in thread main java.lang.NumberFormatException: For input string: [telefone removido]

at java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:68)

at java.base/java.lang.Integer.parseInt(Integer.java:652)

at java.base/java.lang.Integer.parseInt(Integer.java:770)

at conexao.inserirdados(conexao.java:43)

at Banco.main(Banco.java:31)

Sendo que quando executo esse mesmo insert só que manualmente no SQL o update é feito sem problemas, alem de que quando insiro um número com menos caracteres o insert funciona perfeitamente.

3 Respostas

cezzao

Parece que em algum momento vc está tentando transformar o CPF em um inteiro, é isso? Pode mostrar um pouco mais do seu método?

pmlm

O teu o problema é que 11 111 111 111 é maior que o maximo inteiro de java (2 147 483 647).

Mas… porque é que o CPF é um número?
CPF, numero de telefone, numero de identidade, são strings/varchar com a particularidade de só terem algarismos, não são números.

B

Obrigado senhores, eu realmente estava transformando CPF em int, fiz as alterações e elas funcionaram.

Criado 26 de maio de 2020
Ultima resposta 27 de mai. de 2020
Respostas 3
Participantes 3