[RESOLVIDO]Problema com AbstractModelTable e inner join

8 respostas
gabrielemidio

Pessoal tenho uma aplicação onde ela vai ao Banco e me retorna dados que equivalente a uma data fornecida pelo usuário, mas quando faço isso ele me retorna o ultimo dado em todas as linhas exemplo se haver 2 dados que possuam a mesma data ele vai preencher essa linha com o mesmo dado sempre o ultimo da chamada

Ja tentei de várias maneiras mas não consigo solucionar esse problema se alguém poder me ajudar ficou muito grato

private List<PesquisaAgenda> getListaAgenda(){
    
        List<PesquisaAgenda> listapa = new ArrayList<PesquisaAgenda>(); 
        
        PesquisaAgenda pa = new PesquisaAgenda();
        
        String data = ftfdata.getText();

         try {
                conn = DriverManager.getConnection("jdbc:odbc:fashionhair","root","");
                Statement stmt = conn.createStatement();
          
          ResultSet res = stmt.executeQuery("Select agenda.hora as hora, agenda.data as data,cadastro_cliente.nome_cliente as nome from agenda inner join cadastro_cliente on agenda.cod_cli = cadastro_cliente.cod_cli where agenda.data =\""+data+"\";");
  
          while (res.next()){
          
           pa.setNomeAgenda(res.getString("nome"));
           pa.setDataAgenda(res.getString("data"));
           pa.setHoraAgenda(res.getString("hora"));

            listapa.add(pa);

       } 
           
           res.close();
           stmt.close();
           conn.close();
           
            } catch (SQLException ex) {
               ex.printStackTrace();
            }
    
    
         return listapa;
    }

att

Gabriel

8 Respostas

fwsales
WHERE agenda.data = '"+data+"' ;
gabrielemidio

fwsales acho que você entendeu errado, isso ocorre quando vou setar no JTable a query está certa ;)!

yhhik

tente assim:

while (res.next()){  
PesquisaAgenda pa = new PesquisaAgenda();  
        
       pa.setNomeAgenda(res.getString("nome"));  
       pa.setDataAgenda(res.getString("data"));  
       pa.setHoraAgenda(res.getString("hora"));  
  
        listapa.add(pa);  
  
   }
gabrielemidio

yhhik é desse modo que estou fazendo! quando executo esse laço ele me trás os dados repetidos, da uma olhada no código que mandei

while (res.next()){  
        
       pa.setNomeAgenda(res.getString("nome"));  
       pa.setDataAgenda(res.getString("data"));  
       pa.setHoraAgenda(res.getString("hora"));  
  
        listapa.add(pa);  
  
   }
pmlm

Não é não. Tu estás a usar sempre o mesmo objecto. Observa bem que há uma diferença no código.

gabrielemidio

Opa pmlm certamente, erro meu desculpe yhhik não observei que dentro do loop ele chama a PesquisaAgenda.

att

Grato

vou ver se da certo aqui

gabrielemidio

Problema Resolvido agradeço a todos que responderam o tópico :)!

desculpa o mal entendido!

Obrigado

Gabriel

fwsales

Meu Deus, era só instanciar…
Tá valendo então…

Criado 20 de janeiro de 2012
Ultima resposta 21 de jan. de 2012
Respostas 8
Participantes 4