Metodo de busca por cpf

3 respostas
F

Boa Noite a todos os membros.

Estou criando uma pagina em JDBC que quando usuário digitar seu cpf
o numero apareça na tela que tô na divida na query se é “select * from pessoa where cpf=?”
ou “select * from pessoa where cpf like %?”

Desde já agrdeço a ajuda.

3 Respostas

W

Boa noite amigo!
A primeira forma é correta, “select * from pessoa where cpf=?”;
Suponha que tenha o cpf [CPF removido], logo teu select deverá ficar = select * from pessoa where cpf= ‘[CPF removido]’.
Mais sugiro que vc não use sql nativo pq poderá permitir ataque de “SQL injection”.

Segue um exemplo da forma mais aconselhada:

public Aluno consultarPorCPF(String cpf) throws AuadException {
		try {
			String sql = "select * from aluno where cpf =:cpf";

			Query query = em.createNativeQuery(sql, Aluno.class);
			query.setParameter("cpf", cpf);

			return (Aluno) query.getSingleResult();
		} catch (NoResultException e) {
			return null;
		} catch (Exception e) {
			UtilLog.log.error(e.getMessage(), e);
			throw new AuadException(e.getMessage());
		}
	}
A

JDBC não é obrigatoriamente porta de entrada pra SQL Injection… PreparedStatement existe, pessoal!!

W
wendelguedes:
Boa noite amigo! A primeira forma é correta, "select * from pessoa where cpf=?"; Suponha que tenha o cpf [CPF removido], logo teu select deverá ficar = select * from pessoa where cpf= '[CPF removido]'. Mais sugiro que vc não use sql nativo pq poderá permitir ataque de "SQL injection".

Segue um exemplo da forma mais aconselhada:

public Aluno consultarPorCPF(String cpf) throws AuadException {
		try {
			String sql = "select * from aluno where cpf =:cpf";

			Query query = em.createNativeQuery(sql, Aluno.class);
			query.setParameter("cpf", cpf);

			return (Aluno) query.getSingleResult();
		} catch (NoResultException e) {
			return null;
		} catch (Exception e) {
			UtilLog.log.error(e.getMessage(), e);
			throw new AuadException(e.getMessage());
		}
	}

Gostei.

Criado 22 de fevereiro de 2012
Ultima resposta 23 de fev. de 2012
Respostas 3
Participantes 4