Me ajudem por favor

4 respostas
programaçãojavamysql
T

Boa noite galera, to com um problema no meu campo de pesquisa. meu codigo do botão ta assim:

try {

conecta.executaSQL(Select * from Cadastros);

conecta.rst.first();

id_Cadastros.setText(String.valueOf(conecta.rst.getInt(idCadastros)));

Nome.setText(conecta.rst.getString(Nome));

Email.setText(conecta.rst.getString(Email));

Dat_Nasc.setText(conecta.rst.getString(Data_Nasc));

Telefone.setText(conecta.rst.getString(Telefone));
} catch (SQLException ex) {
        JOptionPane.showMessageDialog(rootPane, "Cadastro não encontrado !!\n\n ERRO: "+ex);
        Excluir.setEnabled(true);
    }
}

Só que quando eu faço a pesquisa, ele so me retorna as informações da primeira linha do meu banco. Alguem pode me dizer o que ta errado ai ?? OBS: utilizo o CPF(buscar_cpf) como informação pra busca.

4 Respostas

Jederson_Andre

Acho que esse é o probleminhas first()
eu utilizo o laço while, assim ele percorre todas as linhas e me retorna cda uma

while(rs.next()){
 // instrução que ira ler as colunas
classeObjeto objeto = new classeObjeto();
objeto.setAtributo(rs.getString("nomeColuna");
}
H

na verdade o erro está aqui, se você quer pegar o cpf especifico, você vai ter que usar a condição where do SQL., usar preparetedstate para conseguir colocar no query do sql o cpf, ou então voce tira o conecta.rst.first(); e usa o while para procurar, usando rst.next(); no google tem vários exemplos dessa implementação, só procurar.

lucas.sampaio

Tá faltando uma condição where na consulta.
Esse conecta.rst.first(); sempre vai retornar o primeiro encontrado.

Vamos as observações:

  • Se for pra buscar somente um pode usar o if no lugar do while, mais de um tem que usar o while mesmo.
  • Você tem que percorrer os campos e settar os valores retornados dentro de um lao de repetição.

Se ainda tiver dúvidas pode postar que a gente ajuda.

Aqui dois exemplos - 1 método que retorna somente um registro e outro método que retorna 1 ou vários registros.


Extra:
Tem uns finally aí mas é só pra mostrar o pessoal mesmo, tem um recurso mais interessante que é o try-with-resources onde não precisa usar o finally pra fechar - usando o método .close()- algumas coisas.

T

vlw cara, ajudou.

Criado 18 de abril de 2018
Ultima resposta 19 de abr. de 2018
Respostas 4
Participantes 4