Try-catch

4 respostas
C

Pessoal, mais uma ajudinha, não estou entendendo por que esse código sempre cai no Catch…

protected boolean verificaCPFExistente(String cpf) {

        conectar();
       
            java.sql.Statement stm;
        try {
            stm = con.createStatement();
            String SQL = "SELECT cpf FROM caronista WHERE cpf = " + cpf;

            ResultSet rs;
        
            rs = stm.executeQuery(SQL);
            
            
            
            return !rs.next();

        } catch (SQLException ex) {
           System.out.println("cpf inserido é inválido");
            return false;
        }

4 Respostas

Rodrigo_Sasaki

Se você analisar a exceção lançada, isso pode te dar uma dica do motivo :slight_smile:

C

o erro me retorna isso:

org.postgresql.util.PSQLException: ERROR: operator does not exist: character varying = bigint

no meu BD tá assim a tabela:

CREATE TABLE caronista
(
  nomecompleto character varying(30) NOT NULL,
  nomeusuario character varying(20) NOT NULL,
  senha character varying(15) NOT NULL,
  email character varying(30) NOT NULL,
  cpf character varying(11) NOT NULL,
  matricula character varying(12) NOT NULL,
  campusorigem character varying(10) NOT NULL,
  datanascimento character varying(40) NOT NULL,
  CONSTRAINT caronista_pkey PRIMARY KEY (cpf ),
  CONSTRAINT caronista_campusorigem_fkey FOREIGN KEY (campusorigem)
      REFERENCES campus (campus) MATCH SIMPLE
      ON UPDATE NO ACTION ON DELETE NO ACTION
)
di.magdaleno

@Claudio_davi:
o erro me retorna isso:

org.postgresql.util.PSQLException: ERROR: operator does not exist: character varying = bigint

[…]

Pela descrição do erro parece que o PostgreSQL está considerando o valor do CPF como um inteiro (bigint) e não uma String (character varying).

Acredito que poderia resolver o problema usando PreparedStatement no seu método.

fabiocortolan

Coloque o CPF entre aspas para a consulta sql:

String SQL = "SELECT cpf FROM caronista WHERE cpf = '" + cpf + "'";
Criado 13 de março de 2013
Ultima resposta 14 de mar. de 2013
Respostas 4
Participantes 4