Filtrar por nome

7 respostas
cristianoventura

Pessoal gostaria de saber como faço para filtra por nome o meu aplicativo pelo código esta funcionando normalmente agora quando pelo nome da erro.Segue os meus dois códigos.No aguardo.

public static Cliente pesquisar (Integer codigo) {
		Cliente cliente = new Cliente();
		try{
			String sql = "SELECT * FROM CLIENTE WHERE CODIGO=?";
			Connection conn = ConnectionFcatory.getConnection();
			PreparedStatement stmt = conn.prepareStatement(sql);
			stmt.setInt(1, codigo);
			ResultSet res = stmt.executeQuery();
			if (res.next()){
				cliente.setCodigo(res.getInt("CODIGO"));
				cliente.setNome(res.getString("NOME"));
				cliente.setCpf(res.getString("CPF"));
				
			}
			stmt.close();
			res.close();
			conn.commit();
		} catch (SQLException e){
			e.printStackTrace();
		}

		return cliente;
	}

Pesquisa por nome segue abaixo

public static Cliente pesquisar (String nome,String pesquisa) {
		Cliente cliente = new Cliente();
		try{
			String sql = "select  *  from cliente where upper (nome) like '"+pesquisa.toUpperCase()+"%'";
			Connection conn = ConnectionFcatory.getConnection();
			PreparedStatement stmt = conn.prepareStatement(sql);
			stmt.setString(1, nome);
			ResultSet res = stmt.executeQuery();
			if (res.next()){
				cliente.setCodigo(res.getInt("CODIGO"));
				cliente.setNome(res.getString("NOME"));
				cliente.setCpf(res.getString("CPF"));
				
			}
			stmt.close();
			res.close();
			conn.commit();
		} catch (SQLException e){
			e.printStackTrace();
		}

		return cliente;
	}

7 Respostas

nel

Oi,

se está gerando erro por favor, poste o mesmo :slight_smile:
E sobre o seu pesquisar por nome, o % ao fim indica que ele pode terminar com qualquer coisa mas o nome deve iniciar com o que foi passado, é isso mesmo ? :slight_smile:

Abraços.

Scoobydoo
Coloca o erro que é mais facil... Ou tenta assim...
public static Cliente pesquisar (String nome,String pesquisa) {  
        Cliente cliente = new Cliente();  
        try{  
            String sql = "select  *  from cliente where upper(nome) like upper("+pesquisa+"%)";  
            Connection conn = ConnectionFcatory.getConnection();  
            PreparedStatement stmt = conn.prepareStatement(sql);  
            stmt.setString(1, nome);  
            ResultSet res = stmt.executeQuery();  
            if (res.next()){  
                cliente.setCodigo(res.getInt("CODIGO"));  
                cliente.setNome(res.getString("NOME"));  
                cliente.setCpf(res.getString("CPF"));  
                  
            }  
            stmt.close();  
            res.close();  
            conn.commit();  
        } catch (SQLException e){  
            e.printStackTrace();  
        }  
  
        return cliente;  
    }
Diguinho.Max

Não entendi o pq de dois parametros mais vamos lá

creio eu que é só fazer o select:

String sql = “Select * From Cliente where upper(nome) like “+nome”+%”;

se estiver errado que alguém me corrige!
att.,

Scoobydoo
Boa diguinho, deve ser esse o problema.....
public static Cliente pesquisar (String nome,String pesquisa) {  
        Cliente cliente = new Cliente();  
        try{  
            String sql = "select  *  from cliente where upper (nome) like '"+pesquisa.toUpperCase()+"%'";  
            Connection conn = ConnectionFcatory.getConnection();  
            PreparedStatement stmt = conn.prepareStatement(sql);  
            stmt.setString(1, nome);  // <------- Aqui você ta tentando setar como parametro (1) algo que não existe... não tem nenhum ? no teu select
            ResultSet res = stmt.executeQuery();  
            if (res.next()){  
                cliente.setCodigo(res.getInt("CODIGO"));  
                cliente.setNome(res.getString("NOME"));  
                cliente.setCpf(res.getString("CPF"));  
                  
            }  
            stmt.close();  
            res.close();  
            conn.commit();  
        } catch (SQLException e){  
            e.printStackTrace();  
        }  
  
        return cliente;  
    }
cristianoventura

O erro que da é no meu Flex no front quando pesquiso que filtro ele mostra no grid um valor 0 ,mas o problema esta no java.Creio eu.

nel

Antes de retornar o objeto cliente dá um System.out.prinln() em todos os parametros utilizados em seu grid no Flex.
Caso esteja imprimindo corretamente, o seu problema pode estar na camada Flex mesmo, caso contrário, veja que valor está chegando ao seu método e testa o mesmo SQL em um Cliente de banco de dados.

Diguinho.Max

pois então poste o erro para podermos tentar ajudar!
;D

Criado 17 de outubro de 2011
Ultima resposta 24 de out. de 2011
Respostas 7
Participantes 4