Pesquisa resulta sempre o primeiro da lista pelo id

9 respostas
C

Fala pessoal tudo bem ?estou desenvolvendo um cadastro de usuarios a fins de estudo, criei um methodo de pesquisa em banco, porem estou com o seguinte problema, ao clicar em pesquisar não importa oque eu digite em busca ele sempre retorna o primeiro do banco de bados pela id, ou seja sempre retorna o 1 id do banco, não buscando assim os outros nomes algum pode me dar uma mão?
Segue O Codigo:

9 Respostas

FearX

Cara, evite postar imagem de código e poste o código. Isso nos ajuda a testar o código em nossas IDEs…
Also, onde está seu método “executaSQL”?
Um print do seu banco de dados é bem vindo.

C

Codigo Do metodo Pesquisa

public ModeloCliente pesq_cliente (ModeloCliente mod){//metodo de pesquisa passa como parametro o modelo clientes

conex.conexao();//faz a conexao

conex.executaSQL(Select * from tabela_cliente where nome_cliente like '%+mod.getPesq()+"%’");//seleciona o objeto pelo nome da tabela clientes_mar

try {

conex.rs.first();//pega o primeiro da lista

mod.setCodigo(conex.rs.getInt(id_cliente));

mod.setNome(conex.rs.getString(nome_cliente));//seta o nome recuperoda pelo rs no atributo nome da classe modelo

mod.setCpf(conex.rs.getInt(cpf_cliente));//seta o nome recuperoda pelo rs no atributo cpf da classe modelo

mod.setRg(conex.rs.getInt(rg_cliente));

mod.setCep(conex.rs.getInt(cep_cliente));

mod.setTelefone(conex.rs.getInt(telefone_cliente));//seta o Telefone recuperoda pelo rs no atributo nome da classe modelo

mod.setEndereco(conex.rs.getString(endereco_cliente));

mod.setCidade(conex.rs.getString(cidade_cliente));//seta o cidade recuperoda pelo rs no atributo nome da classe modelo

mod.setEstado(conex.rs.getString(estado_cliente));
} catch (SQLException ex) {
        Logger.getLogger(ControleCliente.class.getName()).log(Level.SEVERE, null, ex);
         JOptionPane.showMessageDialog(null, "Cliente Não Cadastrado!\n");//caso nao cadastre com sucesso
    }
        
        conex.deconecta();//Desconecta do banco
    
    
        return mod;//retorna o mod 
}
C

Ação Do Botão De Pesquisa

private void jBPesqActionPerformed(java.awt.event.ActionEvent evt) {

// TODO add your handling code here:

mod.setPesq(jBPesq.getText());//seta dentro do parametro pesquisa oque o usuario digitou no campo de texto pesq

ModeloCliente model  = cont.pesq_cliente(mod);//chama o metodo de pesquisa dentro da clase mod

jT_NOME.setText(model.getNome());//pega os dados do atributo nome da classe modelo e seta o texto dentro do campo nome

jF_CPF.setText(String.valueOf(model.getCpf()));//pega os dados do atributo cpf da classe modelo e seta o texto dentro do campo e faz a conversao de string para inteiro

jF_RG.setText(String.valueOf(model.getRg()));//pega os dados do atributo telefone da classe modelo e seta o texto dentro do campo nome

jF_CEP.setText(String.valueOf(mod.getCep()));//pega os dados do atributo cidade da classe modelo e seta o texto dentro do campo nome

jF_TELEFONE.setText(String.valueOf(model.getTelefone()));//pega os dados do atributo endereço da classe modelo e seta o texto dentro do campo nome

jT_ENDERECO.setText(model.getEndereco());

jT_CIDADE.setText(model.getCidade());

jC_ESTADO.setSelectedItem(mod.getEstado());

//jT_cod.setText(String.valueOf(mod.getCodigo()));

preenche_tabela(“Select * from tabela_cliente where nome_cliente like '%”+mod.getPesq()+"%’");

}
staroski

Veja seu código:

conex.rs.first();//pega o primeiro da lista

Se voce tem vários registros, deve fazer um laço, assim:

while (conex.rs.next()) {
    ModeloCliente mod = new ModeloCliente();
    mod.setCodigo(conex.rs.getInt(id_cliente));
    mod.setNome(conex.rs.getString(nome_cliente));//seta o nome recuperoda pelo rs no atributo nome da classe modelo
    mod.setCpf(conex.rs.getInt(cpf_cliente));//seta o nome recuperoda pelo rs no atributo cpf da classe modelo
    mod.setRg(conex.rs.getInt(rg_cliente));
    mod.setCep(conex.rs.getInt(cep_cliente));
    mod.setTelefone(conex.rs.getInt(telefone_cliente));//seta o Telefone recuperoda pelo rs no atributo nome da classe modelo
    mod.setEndereco(conex.rs.getString(endereco_cliente));
    mod.setCidade(conex.rs.getString(cidade_cliente));//seta o cidade recuperoda pelo rs no atributo nome da classe modelo
    mod.setEstado(conex.rs.getString(estado_cliente));
    
    <aqui você adiciona o objeto mod em uma lista de ModeloCliente >
}
C

Funcionou show de bola, porem agora quando eu pesquiso um nome em minusculo por exemplo, ele não me retorna o resultado, da erro de resultset e limpa a tabela veja:

staroski

A mensagem de erro está bastante clara.

Posta seu código.

E não esqueça de formatá-lo com o botão </>

Jonas_B_a_r_r_o_s

Use o ignoreCase. Tanto no codigo java quanto nas querys do banco

C
Esse e o metodo de pesquisa, removi o laço porem esta funcionando!

</ public ModeloCliente pesq_cliente (ModeloCliente mod){//metodo de pesquisa passa como parametro o modelo clientes

conex.conexao();//faz a conexao

conex.executaSQL(Select * from tabela_cliente where nome_cliente like '%+mod.getPesq()+"%’");//seleciona o objeto pelo nome da tabela clientes_mar

try {

conex.rs.first();//pega o primeiro da lista

mod.setCodigo(conex.rs.getInt(id_cliente));

mod.setNome(conex.rs.getString(nome_cliente));//seta o nome recuperoda pelo rs no atributo nome da classe modelo

mod.setCpf(conex.rs.getInt(cpf_cliente));//seta o nome recuperoda pelo rs no atributo cpf da classe modelo

mod.setRg(conex.rs.getInt(rg_cliente));

mod.setCep(conex.rs.getInt(cep_cliente));

mod.setTelefone(conex.rs.getInt(telefone_cliente));//seta o Telefone recuperoda pelo rs no atributo nome da classe modelo

mod.setEndereco(conex.rs.getString(endereco_cliente));

mod.setCidade(conex.rs.getString(cidade_cliente));//seta o cidade recuperoda pelo rs no atributo nome da classe modelo

mod.setEstado(conex.rs.getString(estado_cliente));
} catch (SQLException ex) {
        Logger.getLogger(ControleCliente.class.getName()).log(Level.SEVERE, null, ex);
         JOptionPane.showMessageDialog(null, "Cliente Não Cadastrado!\n");//caso nao cadastre com sucesso
    }
     
        conex.deconecta();//Desconecta do banco
    
    
        return mod;//retorna o mod 
}/>
C

Jonas aonde Eu posso passar esse metodo ignoreCase?

Criado 30 de novembro de 2018
Ultima resposta 1 de dez. de 2018
Respostas 9
Participantes 4