Erro em Função Consulta Banco de Dados MySql

Boa Tarde Pessoal… to desenvolvendo um cadastro de alunos em JAVA utilizando 3 Camadas.
criei uma função para verificar no banco de dados se ja existe um cpf cadastrado no momento em q o jtextfield perde o foco, mas o sistema sempre retorna que nao existe o cpf digitado, mesmo ele ja estando cadastrado no banco de dados… abaixo estao os códigos das 3 camadas… gostaria da ajuda de voces para solucionar o erro deste código… desde ja agradeço…

******** Código Executado Quando o jTextField Perde o Foco *******
private void txtCPFFocusLost(java.awt.event.FocusEvent evt) {
if (txtCPF.getText().equals(""))
{
JOptionPane.showMessageDialog(null, “É Obrigatório Digitar o CPF!”);
txtCPF.requestFocus();
}
else
{
try
{
atual = controle.existeUsuario(txtCPF.getText());
txtNomeCompleto.setText(atual.getNomecompleto());
txtSenha.setText(atual.getSenha());
txtTelefone.setText(atual.getTelefone());
txtUsuario.setText(atual.getMatricula());
}
catch (Exception ex)
{
JOptionPane.showMessageDialog(this, ex.getMessage());
}
catch (Throwable ex)
{
JOptionPane.showMessageDialog(this, ex.getMessage());
}
}

*********** Código da Camada Lógica ********
public Usuario existeUsuario(String cpf) throws Exception, Throwable
{
if (Usuario.validacpf(cpf))
return Usuario.consultar(cpf);
else
throw new Exception(“Este CPF Não é Válido!”);
}

****** Código da Camada Persistente ******
//Metodo de classe usado para criar um outro objeto para receber os dados da consulta.
public static Usuario consultar(String parametros)throws Exception, Throwable
{
Usuario v = new Usuario ();
return v.consulta(“cpf”);
}

/*Metodo que faz a seleção do Aluno no BD, se não houver o aluno consultado 
 retorna uma mensagem de erro*/

public Usuario consulta(String cpf)throws Exception, Throwable
{
    conexao = new Conexao();
    /*Declara o caminho a ser usado para salvar o dados do novo veículo */
    Statement declaracao = conexao.getConexao().createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE);
    String comandoSql;
    Usuario retorno;
    //Faz um Select no Banco de Dados Passando o CPF como Parametro.
    comandoSql= "select * from usuario WHERE cpf='"+ cpf +"'";
    //executa o comando e insere na tabela usuario no mysql
    ResultSet resultado = declaracao.executeQuery(comandoSql);
    resultado.last();
    //verifica se o resultado retornado não tiver nenhum dado, envia mensagem de erro.
    if (resultado.getRow()!=0)
        throw new Exception ("Não Existe o Aluno Pesquisado!");
    //se conter algum dados a variaves "retorno" recebe os dados.
    else
    {    
        retorno = new Usuario (resultado.getString("cpf"),
                resultado.getString("nomecompleto"),
                resultado.getString("telefone"),
                resultado.getString("nomeusuario"),
                resultado.getString("senha"),
                resultado.getString("matricula"),
                resultado.getInt("disciplina"),
                resultado.getInt("turma"),
                resultado.getInt("tipo"));
    }
    conexao.finalize();
    // envia para o objeto consulta os dados selecionados.
    return retorno;
}

Olá Rodrigo;
Bom dia!

Verifique a string do comando sql:

comandoSql= "select * from usuario WHERE cpf='"+ cpf +"'";

Tem aspas sobrando no final da instrução.

Outra coisa, evite concatenar strings em comandoSQL. Use o setString, algo parecido com isto:

PreparedStatement ps=null;
ResultSet rs=null;
conn=DriverManager.getConnection(url,user,password);
comandoSql= "select * from usuario WHERE cpf=?";
ps=conn.prepareStatement(comandoSql);

ps.setString(1, cpf);//aqui você seta o CPF para a query, sem a necessidade de concatenar

rs=ps.executeQuery();

while (rs.next()) {
...
}
....

Qualquer coisa posta novamente!

Abraço

Marco A.

Ops…

Depois que coloquei adequadamente seu código nas tags CODE é que percebi que as aspas no final da instrução estão corretas.

Fica valendo a dica do setString;

:lol:

Marco A.