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:
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.
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
}
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()+"%’");
}
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 >
}
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:
A mensagem de erro está bastante clara.
Posta seu código.
E não esqueça de formatá-lo com o botão </>
Use o ignoreCase. Tanto no codigo java quanto nas querys do banco
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
}/>
Jonas aonde Eu posso passar esse metodo ignoreCase?


