Ajuda para consulta por caracter

5 respostas
kaede

Amigos estou tentando fazer com que minha classe ClienteDAO faça consulta por caracter digitado em um caixa de texto. Esta funcionando quando faço consulta por nome mas tenho que digitar o nome inteiro, quero que quando digitado apenas uma parte da string faça a consulta ex: na vez de Carlos somente Car…minha classe DAO segue abaixo :

public Collection<ClienteVO> selectCliente(String comando,String valor){
		
		Collection<ClienteVO> retorno = null;
Connection conexao = DAOConnection.getInstance();
		
		if(conexao !=null){
			try{
			PreparedStatement pstmt = conexao.prepareStatement(
					"SELECT * from clientes where "+comando+" =?");
			pstmt.setString(1,valor);
			
			retorno = criaColecaoCliente(pstmt.executeQuery());
			
			}catch(SQLException sqle){
				sqle.printStackTrace();
			}
	}
		return retorno;
	}

Obs: comando recebe valor nome da classe view e valor recebe o que foi digitado pelo usuário na caixa dde texto.

5 Respostas

P

o like não resolve seu problema?

exemplo:

where nome like 'Car%'

ou seja, assim ele vai pegar qualquer Texto do campo Nome que começar com Car (Carol, Caroline, Carlos, Carvalho…) e assim vai.

NataliaOliveira

Não seria melhor você fazer o select de todos os registros e filtrar apenas na collection do que fazer uma consulta no banco toda vez que uma letra fosse digitada?

kaede

como faço isso?

dalvac

Esse link vai te ajudar:
http://www.htmlstaff.org/ver.php?id=437

De qq forma, seu código ficaria: (alterações na linha 9 e 10)

1. public Collection<ClienteVO> selectCliente(String comando,String valor){ 2. 3. Collection<ClienteVO> retorno = null; 4. Connection conexao = DAOConnection.getInstance(); 5. 6. if(conexao !=null){ 7. try{ 8. PreparedStatement pstmt = conexao.prepareStatement( 9. "SELECT * from clientes where "+comando+ " like ?" ); 10. pstmt.setString(1, "%"+valor+"%"); 11. 12. retorno = criaColecaoCliente(pstmt.executeQuery()); 13. 14. }catch(SQLException sqle){ 15. sqle.printStackTrace(); 16. } 17. } 18. return retorno; 19. }

kaede

AIIII!!!funcionou isso que eu queria valeu!!!

Criado 14 de outubro de 2008
Ultima resposta 14 de out. de 2008
Respostas 5
Participantes 4