Fazer uma consulta no BD por código x nome? RESOLVIDO

Boa tarde Galera?
É o seguinte estou querendo fazer uma pesquisa na tela de venda, onde o usuário pode digitar o código ou a descrição do produto, mas quero fazer utilizar o mesmo jTextField por ex:
Se o 1º caracteres for letra irar listar os produtos e se digitar o código irar preencher os jTextField
Espero q vcs tenha entendi o meu proposito.
Desde já agradeço a compreensão de todos

essa sua forma de fazer não é o ideal né, crie um jcombobox com as opçoes de pesquisa por código ou por nome;
daí você testa qual foi selecionado, e faz a busca correta.

abs

Assim pensei fazer com Jcombobox, mas seira para uma frente de caixa, entao pensei nenhuma maneira mais pratica onde o usuario nao teria necessidade de escolher mais valeu por sua atençao.

Você pode fazer um teste para saber se no campo foi digitado um numero ou letras.
Use expressões regulares para isso, por exemplo, \d testa se o valor contém apenas dígitos de 0-9. Assim você pode direcionar sua consulta através de um teste condicional.
http://docs.oracle.com/javase/tutorial/essential/regex/intro.html

romarcio

vou tenta cria aqui essa engenhoca, aqui mais valeu por sua atenção ha estou pesquisando sobre essa dica q vc passou vou ver se encontro esse codigo para identificar se foi digitado texto ou numero dentro do campo.

public static boolean isOnlyDigits(String text) { if (text.isEmpty()) return false; for (int i = 0; i < text.length(); i++) if (!Character.isDigit(text.charAt(i))) return false; return true; }

erico_kl

Esse método fazer distinção entre o q é numero e texto, agora no primeiro caráter digitado ele consegue identifica deixo o meu contanto do msn caso queira me passa mais alguma dicas cemporcentoadilson@hotmail.com, valeu Brother pelo código

erico_kl

acabei de verificar aqui o metodo q vc me mandou e vir q deu certo. Muito obrigado pela força.

Usando expressões regulares como eu tinha te sugerido. Faz um teste com esse método.

    void test() {
        String result = JOptionPane.showInputDialog("Digite um numero ou uma palavra: ");        
        if (result.matches("\\d+")) {//testa 1 ou Mais ocorrencias de apenas numeros
            System.out.println("Você digitou numeros");
        } else if (result.matches("\\w+")) { //testa 1 ou mais ocorrencias de qualquer caracter
            System.out.println("Você digitou [palavras/numeros]");
        } else { 
            System.out.println("Nada foi digitado!");
        }
    }

[quote=adsadilson]erico_kl

Esse método fazer distinção entre o q é numero e texto, agora no primeiro caráter digitado ele consegue identifica deixo o meu contanto do msn caso queira me passa mais alguma dicas cemporcentoadilson@hotmail.com, valeu Brother pelo código[/quote]

Bom dia amigos!

Lembre-se que o fórum não é apenas um meio de comunicação para troca de informações entre profissionais. No ramo de T.I. é fundamental termos uma rede de relacionamento,…
Mas acima de tudo o fórum é uma base de conhecimento, antes de postar qualquer pergunta, faça uma pesquisa, na maioria das vezes a mesma dúvida já foi postada por outro usuário e a resposta também! :slight_smile:

Se tiver “mais algumas dicas”, poste aqui também!!

É muito importante pra todos que respostas sejam postadas no fórum, assim ele enriquece e nós também! :wink:

Caro amigo terra.jr

Não entendi muito o seu questionamento poderia deixa mais claro por favor.

sobre a pesquisar q vc cita infelizmente nao tive exito por isso q abrir esse topico

Galera a minha solução foi resolvida da seguinte forma:

// Aqui eu faço a verifição para chamar o metodo
private void jtf_municipioKeyReleased(java.awt.event.KeyEvent evt) {                                          
          if (testChar_Number(jtf_municipio.getText())){
            pesquisar_codigo();
          }else{
            pesquisar_nome();
       }    
    }    


// Esse é o metedo q faz a disitinçao entre text e numero 
public boolean testChar_Number(String text) 
    {   
         if (text.isEmpty())   
              return false;   
         for (int i = 0; i < text.length(); i++)   
            if (!Character.isDigit(text.charAt(i))) 
            return false;   
         return true;   
    }

esse metodo q o erico_kl passou fiz uma adaptação para alguns JFrame
mais uma vez muito obrigado a todos q me ajudaram e por ter compartilhado o seu conhecimento.