Duvida simples em popular jframe

1 resposta
TASF

o que estou fasendo de errado que nao esta populando a tela ??
aki deveria ser populado com os dados da banco de dados

private void btnpesquisarActionPerformed(java.awt.event.ActionEvent evt) {
        // TODO add your handling code here:
        
       // solicita parâmetro de pesquisa
String nome = JOptionPane.showInputDialog("Informe o nome do paciente a ser pesquisado");
BeanPaciente bp = new BeanPaciente();
        try {
            PacienteDao pd = new PacienteDao();
            pd.pesquisar(nome);
          //  codigopaciente.setText(new Integer(pd.bpaciente.getCodigo()).toString());// aqui faço a conversao de int para string
            nomepaciente.setText(pd.bpaciente.getNome());
//            telefonepaciente.setText(pd.bpaciente.getTelefone());
//            emailpaciente.setText(pd.bpaciente.getEmail());
//            datanascimento.setText(pd.bpaciente.getDatadenascimento());
//            
            
        } catch (SQLException ex) {
            Logger.getLogger(Paciente.class.getName()).log(Level.SEVERE, null, ex);
        }


    }

aki e o meu dao

public void  pesquisar(String nome)throws SQLException{
try{
    
    JOptionPane.showMessageDialog(null, nome);

String sql = "SELECT * FROM PACIENTE WHERE Nome_Paciente LIKE ?";
PreparedStatement stmt = con.prepareStatement(sql);
ResultSet rs =null;
BeanPaciente bp = new BeanPaciente();

stmt.setString(1, "%" + nome + "%");
rs = stmt.executeQuery();
while (rs.next()) { 
// recupera informações do ResultSet e coloca na classe bean
bp.setCodigo(rs.getInt("Codigo_Paciente"));
bp.setNome(rs.getString("Nome_Paciente"));
bp.setTelefone(rs.getString("Telefone_Paciente"));
bp.setEmail(rs.getString("Email"));
bp.setDatadenascimento(rs.getString("Data_Nascimento"));
bp.setSexo(rs.getString("sexo"));
bp.setNome_convenio(rs.getString("CONVENIO"));
System.out.println(bp.getSexo());
}
stmt.close();
} catch (SQLException sql) {
JOptionPane.showMessageDialog(null, "Não foi possivel execultar a pesquisa");
sql.printStackTrace();
} finally {
// solicita ao gerenciado e liberação dos recursos
con.close();
//obs: qndo peço para imprimir os bean da ki ele imprime certo, porem se pedir  para popular ele nao mostra nada somente o codigo pq?
}
 como faço pra pegar os dados do bean e mostrar na pesquisa?/?

1 Resposta

ViniGodoy

Altere seu método pesquisar para retornar o Bean encontrado:

public BeanPaciente pesquisar(String nome) {
   try {
      PreparedStatement stmt = null;
      ResultSet rs = null;
      try {    
         String sql = "SELECT * FROM PACIENTE WHERE Nome_Paciente LIKE ?";
         stmt = con.prepareStatement(sql);
         stmt.setString(1, "%" + nome + "%");
         rs = stmt.executeQuery();
         if (!rs.next()) {
            return null;

        BeanPaciente bp = new BeanPaciente();
        // recupera informações do ResultSet e coloca na classe bean
        bp.setCodigo(rs.getInt("Codigo_Paciente"));
        bp.setNome(rs.getString("Nome_Paciente"));
        bp.setTelefone(rs.getString("Telefone_Paciente"));
        bp.setEmail(rs.getString("Email"));
        bp.setDatadenascimento(rs.getString("Data_Nascimento"));
        bp.setSexo(rs.getString("sexo"));
        bp.setNome_convenio(rs.getString("CONVENIO"));
        return bp; //Retorna o bean lido     
      } finally {
         // solicita ao gerenciado e liberação dos recursos
         if (rs != null) rs.close();
         if (stmt != null) stmt.close();
         if (con != null) con.close();      
      } 
   } catch (SQLException sql) {
      throw new RuntimeException(sql);
   }
}

E seu botão poderá ficar assim:

private void btnpesquisarActionPerformed(java.awt.event.ActionEvent evt) {
    // solicita parâmetro de pesquisa
    String nome = JOptionPane.showInputDialog(this, "Informe o nome do paciente a ser pesquisado");
    BeanPaciente bp = new PacienteDao().pesquisar(nome);
    if (bp == null) {
        JOptionPane.showMessageDialog(this, "Paciente não encontrado!");
    } else {
        nomepaciente.setText(bp.getNome());  
    }
}
Criado 15 de junho de 2012
Ultima resposta 15 de jun. de 2012
Respostas 1
Participantes 2