Erro ao pesquisar médicos na tabela de médicos

4 respostas
M

Boa noite.
Estou tentando pesquisar médicos na tabela de médicos, tenho 4 médicos cadastrados consigo pesquisar 3 deles, mais tem o médico Moises que apresenta este erro:

Segue o código

public BeansMedico buscaMedico(BeansMedico mod){
        conex.conexao();
        conex.executaSql("Select cod_medico, nome_medico, rg_medico, cpf_medico, crm_medico, nome_especialidade, sexo_medico, status_medico, rua_medico, num_end_med, complemento_medico, nome_bairro, nome_cidade, tel_medico, cel_medico, email_medico from medicos inner join especialidades on especialidades.cod_especialidade = medicos.cod_medico inner join bairros on bairros.cod_bairro = medicos.cod_medico inner join cidades on cidades.cod_cidade = medicos.cod_medico where nome_medico like'%"+mod.getPesquisa()+"%'");
        try {
            conex.rs.next();
            mod.setCodigo(conex.rs.getInt("cod_medico"));
            mod.setNomeMed(conex.rs.getString("nome_medico"));
            mod.setRg(conex.rs.getString("rg_medico"));
            mod.setCpf(conex.rs.getString("cpf_medico"));
            mod.setCrm(conex.rs.getString("crm_medico"));
            mod.setNomeEspecialidade(conex.rs.getString("nome_especialidade"));
            mod.setSexo(conex.rs.getString("sexo_medico"));
            mod.setStatus(conex.rs.getString("status_medico"));
            mod.setRua(conex.rs.getString("rua_medico"));
            mod.setNumEnd(conex.rs.getString("num_end_med"));
            mod.setComplemento(conex.rs.getString("complemento_medico"));
            mod.setNomeBairro(conex.rs.getString("nome_bairro"));
            mod.setNomeCidade(conex.rs.getString("nome_cidade"));
            mod.setTel(conex.rs.getString("tel_medico"));
            mod.setCel(conex.rs.getString("cel_medico"));
            mod.setEmail(conex.rs.getString("email_medico"));
            conex.rs.close();
        } catch (SQLException ex) {
            JOptionPane.showMessageDialog(null, "Erro ao Pesquisar Medico ou Medico não localizado:/nErro"+ex);
        }
        
        conex.desconecta();
        return mod;
    }

e tambem notei que na pesquisar ele nao esta puxando o bairro e cidade correspodente do medico, esta puxando errado.

4 Respostas

bdot

O next() retorna verdadeiro se houver registro ou falso quando não há.
Normalmente você usa ele dentro de um while.

ResultSet rs = conex.rs;
while(rs.next()){
 //código restante
}
M

Obrigado, assim que chegar em casa, vou fazer esta alteração:+1:

M

Fiz o procedimento colocado o while e o next no codigo mais continua apresentando este erro:

Segue o codigo como ficou:

public BeansMedico buscaMedico(BeansMedico mod){

conex.conexao();

conex.executaSql(“Select cod_medico, nome_medico, rg_medico, cpf_medico, crm_medico, nome_especialidade, sexo_medico, status_medico, "

+ “rua_medico, num_end_med, complemento_medico, nome_bairro, nome_cidade, tel_medico, cel_medico,”

+ " email_medico from medicos inner join especialidades on especialidades.cod_especialidade = medicos.esp_medcod inner join bairros on bairros.cod_bairro = medicos.bai_medcod inner join cidades on cidades.cod_cidade = medicos.cid_medcod where nome_medico like’%”+mod.getPesquisa()+"%’");

try {

while(conex.rs.next()){

mod.setCodigo(conex.rs.getInt(“cod_medico”));

mod.setNomeMed(conex.rs.getString(“nome_medico”));

mod.setRg(conex.rs.getString(“rg_medico”));

mod.setCpf(conex.rs.getString(“cpf_medico”));

mod.setCrm(conex.rs.getString(“crm_medico”));

mod.setNomeEspecialidade(conex.rs.getString(“nome_especialidade”));

mod.setSexo(conex.rs.getString(“sexo_medico”));

mod.setStatus(conex.rs.getString(“status_medico”));

mod.setRua(conex.rs.getString(“rua_medico”));

mod.setNumEnd(conex.rs.getString(“num_end_med”));

mod.setComplemento(conex.rs.getString(“complemento_medico”));

mod.setNomeBairro(conex.rs.getString(“nome_bairro”));

mod.setNomeCidade(conex.rs.getString(“nome_cidade”));

mod.setTel(conex.rs.getString(“tel_medico”));

mod.setCel(conex.rs.getString(“cel_medico”));

mod.setEmail(conex.rs.getString(“email_medico”));

conex.rs.close();

}

} catch (SQLException ex) {

JOptionPane.showMessageDialog(null, “Erro ao Pesquisar Medico ou Medico não localizado:/nErro+ex);

}
conex.desconecta();
    return mod;
}
R

Se não me engano, a função “executeQuery” retorna um “ResultSet”, vc esta armazenando ele em memoria na classe de conexão ?

Tem que verificar também se na classe de conexão se vc está fechando o resultSet.

Criado 15 de dezembro de 2020
Ultima resposta 21 de dez. de 2020
Respostas 4
Participantes 3