Problema na hora de gravar no banco!

segue o erro , qq salvo o projeto , pq acontece isso.

Erro !java.lang.StringIndexOutOfBoundsException: String index out of range: 12 Erro !java.lang.StringIndexOutOfBoundsException: String index out of range: 12 java.sql.SQLSyntaxErrorException: Comparisons between 'VARCHAR' and 'INTEGER' are not supported. INSERT into tb_Cadastro(Codigo, NomeSegurado, Nascimento, Sexo, CPF, Ende, Bairro, NumeroRes, Complemento, Produto, Premio ,CEP,UF,NomeEmpresa,EndrecoEmpresa,BairroEmpresa,CidadeEmpresa,CNPJ,Banco,Agencia,AgenciaDV,Conta,ContaDV,TipoDeConta ,DataDoCadastro) VALUES(?,?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? , ? , ? , ? , ?, ?, ? ,?, ?, ?, ?) java.lang.NullPointerException

valeu!

você tem 25 campos (into) e 24 parametros ( ? ).

ja ajustei isso, mas continua o erro

persiste!

verifica no banco o tipo de dado das colunas…e como esta na sua aplicação tb.

att,

no banco essas duas que estão reclamando

Codigo VARCHAR(10), NumeroRes VARCHAR(30),

no java

pstm.setString(1,cad.getCodigo());

qq fiz o debug ele deu pau , esse codigo acima que aconteceu isso.

No seu banco o campo “Código” suporta 10 caracteres, você deve estar passando uma String com comprimento maior do que o suportado. Dá uma checada no tamanho da String passada no método: “pstm.setString(1,cad.getCodigo());”.

poh ta um saco resolver isso…

já olhei no banco esta como string definir tudo com string e etc…

ja debuguei e sempre stop

pstm.setString(1,cad.getCodigo());

Manda imprimir isto (antes da linha que gera a exceção):

System.out.println(cad.getCodigo().length());

se o resultado for um número maior que 10 está aí o erro! A String não pode exceder 10 caracteres.

então ele mostrou 1

Experimenta por essa String dentro de aspas. Por exemplo: se o código for igual a 10 colocar como ‘10’. Outra dica, manda imprimir a consulta e executa ela direto no SGBD.