Preencher List de Objetos - (RESOLVIDO)

Boa tarde pessoal,

Pessoal estou com o seguinte método que recebe uma ResultSet por parâmetro e apartir dela ele vai Criando vários objetos “Titulares”…blz…

Agora eu preciso que a cada Objeto criado ele adicione o mesmo numa List…


	public void titulares(ResultSet rs) throws SQLException{
		Titular titular = null;
		while(rs.next()){
			if(rs.getString("TIPO").equals("TITULAR")){
				
				System.out.println("\n------------------------------------------------------------------------------------------");
				System.out.println("...:: Estamos na linha: " + rs.getRow() + " Do ResultSet ::...");
				System.out.println("\n...:: Titular encontrado ::... : " + rs.getString("NOME"));
				
				titular = new Titular();

				titular.setNome(rs.getString("NOME"));

			}else{
				titular.addDendentes(rs.getString("NOME"));
				System.out.println("\n...:: Dependente encontrado: " + rs.getString("NOME") + "::...");
			}
			
		}

a ResultSet que ele recebe esta assim:

Identificação NOME TIPO
1 ADENI P BERTO TITULAR
2 JOSENILDA DOS S S BERTO ESPOSA
3 AMANDA SIMOES BERTO FILHA
4 ALDO AFONSO DA SILVA TITULAR
5 INES ROSA R DA SILVA ESPOSA

701 JOAO FERREIRA FILHO

neste caso como eu poderei fazer isto?

abraço!!!

[quote=johnny.ibadi@gmail.com]Boa tarde pessoal,

Pessoal estou com o seguinte método que recebe uma ResultSet por parâmetro e apartir dela ele vai Criando vários objetos “Titulares”…blz…

Agora eu preciso que a cada Objeto criado ele adicione o mesmo numa List…


public void titulares(ResultSet rs) throws SQLException{
Titular titular = null;
while(rs.next()){
if(rs.getString("TIPO").equals("TITULAR")){
				
System.out.println("\n------------------------------------------------------------------------------------------");
System.out.println("...:: Estamos na linha: " + rs.getRow() + " Do ResultSet ::...");
System.out.println("\n...:: Titular encontrado ::... : " + rs.getString("NOME"));
				
titular = new Titular();

titular.setNome(rs.getString("NOME"));

}else{
titular.addDendentes(rs.getString("NOME"));
System.out.println("\n...:: Dependente encontrado: " + rs.getString("NOME") + "::...");
}
			
}

a ResultSet que ele recebe esta assim:

Identificação NOME TIPO
1 ADENI P BERTO TITULAR
2 JOSENILDA DOS S S BERTO ESPOSA
3 AMANDA SIMOES BERTO FILHA
4 ALDO AFONSO DA SILVA TITULAR
5 INES ROSA R DA SILVA ESPOSA

701 JOAO FERREIRA FILHO

neste caso como eu poderei fazer isto?

abraço!!![/quote]

public void titulares(ResultSet rs) throws SQLException{
		Titular titular = null;
                                List<Titular> lista = new ArrayList<Titular>();   
		while(rs.next()){
                                              if(rs.getString("TIPO").equals("TITULAR")){
				
				System.out.println("\n------------------------------------------------------------------------------------------");
				System.out.println("...:: Estamos na linha: " + rs.getRow() + " Do ResultSet ::...");
				System.out.println("\n...:: Titular encontrado ::... : " + rs.getString("NOME"));
				
				titular = new Titular();

				titular.setNome(rs.getString("NOME"));

			}else{
				titular.addDendentes(rs.getString("NOME"));
				System.out.println("\n...:: Dependente encontrado: " + rs.getString("NOME") + "::...");
			}
                                            lista.add(titular);
			
		}

Fala Diego tudo bem??

Tipo o problema é que um objeto TITULAR pode ter até 5 dependentes… e da forma que vc sugeriu ele só preencheria 1 dependente e ja adicionaria o objeto(inclompleto) na List… entendeu?

Muito Obrigado…

Vamos la Galera me ajudem!!!

Você está utilizando JDBC certo?

Certo…

Como esta estruturado seu banco?
Voce tem uma tabela so para dependentes?

não…

eu tenho uma tabela “LISTA 1” que tem duas colunas (1° Nome - 2° Tipo)…

na primeira tem todos os nomes (Funcuinarios e os dependentes) na ordem… o que diferencia eles é a coluna TIPO, que tem a informação (titular, esposa, filho…)

eu preciso separar e salvar da forma correta em uma outra tabela…

a query retorna assim:

Identificação____NOME_______________________TIPO
1_____________ADENI P BERTO_______________TITULAR
2_____________JOSENILDA DOS S S BE________ ESPOSA
3_____________AMANDA SIMOES BERTO________FILHA
4_____________ALDO AFONSO DA SILVA________TITULAR
5_____________INES ROSA R DA SILVA_________ESPOSA

701____________JOAO FERREIRA_________________FILHO

Sem os _

Brother está sinistro esta sua situação…

		public void titulares(ResultSet rs) throws SQLException{   
	        Titular titular = null;   
	        List<Titular> lista = new ArrayList<Titular>();     
	        while(rs.next()){   
	        	if(rs.getString("TIPO").equals("TITULAR")){
	                if(titular != null && !"".equals(titular.getNome())){
	                	lista.add(titular);
	                }
	                titular = new Titular();
	        		System.out.println("\n------------------------------------------------------------------------------------------");   
	                System.out.println("...:: Estamos na linha: " + rs.getRow() + " Do ResultSet ::...");   
	                System.out.println("\n...:: Titular encontrado ::... : " + rs.getString("NOME"));  
	                titular.setNome(rs.getString("NOME"));	  
	            }else{   
	                titular.addDendentes(rs.getString("NOME"));   
	                System.out.println("\n...:: Dependente encontrado: " + rs.getString("NOME") + "::...");   
	            }               
	        }  
	        lista.add(titular);
	}

Fiz concluindo que todos que estão abaixo do titular são dependentes do mesmo!

johnny.ibadi@gmail.com

e como vc identifica quem é dependente de quem?

acho q seria melhor se vc tivesse 2 tabelas uma de titulares e outra de dependentes, ai vc faz o mapeamento 1 x N.

posta seu objeto modelo titular.

att,

A outra tabela esta assim:

Nome__________DEP1________DEP2_…_DEP5

respondendo a pergunta “Quem é dependente de quem?”

ta na ordem… ex:

João é titular de todos os dependentes que estiverem abaixo dele… até econtrar outro titular, este ira ser titular de todos os que estiverem abaixo dele até encontrar o outro titular…

O problema é que eu recebi este arquivo assim do RH da Empresa eles não conseguem gerar de outra forma…

[quote=johnny.ibadi@gmail.com]respondendo a pergunta “Quem é dependente de quem?”

ta na ordem… ex:

João é titular de todos os dependentes que estiverem abaixo dele… até econtrar outro titular, este ira ser titular de todos os que estiverem abaixo dele até encontrar o outro titular…

O problema é que eu recebi este arquivo assim do RH da Empresa eles não conseguem gerar de outra forma…[/quote]

Tenta com este exemplo…

public void titulares(ResultSet rs) throws SQLException{     
       Titular titular = null;     
       List&lt;Titular&gt; lista = new ArrayList&lt;Titular&gt;();       
       while(rs.next()){     
        if(rs.getString("TIPO").equals("TITULAR")){   
               if(titular != null && !"".equals(titular.getNome())){   
                lista.add(titular);   
               }   
               titular = new Titular();   
            System.out.println("\n------------------------------------------------------------------------------------------");     
               System.out.println("...:: Estamos na linha: " + rs.getRow() + " Do ResultSet ::...");     
               System.out.println("\n...:: Titular encontrado ::... : " + rs.getString("NOME"));     
               titular.setNome(rs.getString("NOME"));       
           }else{     
               titular.addDendentes(rs.getString("NOME"));     
               System.out.println("\n...:: Dependente encontrado: " + rs.getString("NOME") + "::...");     
           }                 
       }     
       lista.add(titular);   

[quote=diego.sas][quote=johnny.ibadi@gmail.com]respondendo a pergunta “Quem é dependente de quem?”

ta na ordem… ex:

João é titular de todos os dependentes que estiverem abaixo dele… até econtrar outro titular, este ira ser titular de todos os que estiverem abaixo dele até encontrar o outro titular…

O problema é que eu recebi este arquivo assim do RH da Empresa eles não conseguem gerar de outra forma…[/quote]

Tenta com este exemplo…

public void titulares(ResultSet rs) throws SQLException{ Titular titular = null; List&lt;Titular&gt; lista = new ArrayList&lt;Titular&gt;(); while(rs.next()){ if(rs.getString("TIPO").equals("TITULAR")){ if(titular != null && !"".equals(titular.getNome())){ lista.add(titular); } titular = new Titular(); System.out.println("\n------------------------------------------------------------------------------------------"); System.out.println("...:: Estamos na linha: " + rs.getRow() + " Do ResultSet ::..."); System.out.println("\n...:: Titular encontrado ::... : " + rs.getString("NOME")); titular.setNome(rs.getString("NOME")); }else{ titular.addDendentes(rs.getString("NOME")); System.out.println("\n...:: Dependente encontrado: " + rs.getString("NOME") + "::..."); } } lista.add(titular); [/quote]

ME PARECE QUE DESTA FORMA ELE SÓ ADD 1 OBJETO NA LIST ENTENDEU?

PQ OS OBJETOS ESTÃO SENDO CRIADO DENTRO DO WHILE(RS.NEXT()){…}

MAS VOU TESTAR…

johnny.ibadi@gmail.com

vc não pode criar 2 tabelas(titular e dependentes) e inserir o conteúdo desse arquivo nas tabelas com os devidos relacionamentos?

quanto ao código acho q eu faria assim:

[code]public void titulares(ResultSet rs) throws SQLException{
Titular titular;
List<Titular> lista = new ArrayList<Titular>();

   int i = 0; //gambi total 1

   while(rs.next()){       
    if(rs.getString("TIPO").equals("TITULAR")){

           //gambi total 2
           if(i>=1){
              lista.add(titular);
           }

           titular = new Titular();                       
           titular.setNome(rs.getString("NOME"));
           i++;
       }else{       
           titular.addDependentes(rs.getString("NOME")); 
       }                   
   }       

     [/code] 

att,

Testa e depois diz se funfou…

é isto mesmo o que falei…

segue abaixo os logs…

…:: Titular encontrado ::… : ALEX VIEIRA DA SILVA

…:: Dependente encontrado: JOZELMA VIEIRA DA SILVA::…


…:: Estamos na linha: 698 Do ResultSet ::…

…:: Titular encontrado ::… : DORCINA LINO DE SOUZA


…:: Estamos na linha: 699 Do ResultSet ::…

…:: Titular encontrado ::… : JANDIRA DE J C RODRIGUES

…:: Dependente encontrado: ALINE C RODRIGUES::…


…:: Estamos na linha: 701 Do ResultSet ::…

…:: Titular encontrado ::… : FRANCISCO ARIMATEIA DA COSTA

Tamanho do List titulares: 1

[quote=pedruhenrik]johnny.ibadi@gmail.com

vc não pode criar 2 tabelas(titular e dependentes) e inserir o conteúdo desse arquivo nas tabelas com os devidos relacionamentos?

quanto ao código acho q eu faria assim:

[code]public void titulares(ResultSet rs) throws SQLException{
Titular titular;
List<Titular> lista = new ArrayList<Titular>();

   while(rs.next()){       
    if(rs.getString("TIPO").equals("TITULAR")){
           titular = new Titular();                       
           titular.setNome(rs.getString("NOME"));         
       }else{       
           titular.addDependentes(rs.getString("NOME")); 
       }                   
   }       

   lista.add(titular);  [/code] 

att,[/quote]
Desta forma sim, seria adicionado apenas um titular na tabela.

Eu estou tentando assim…

public List titulares(ResultSet rs) throws SQLException{
		Titular titular = null;
		List&lt;Titular&gt; titulares = new ArrayList&lt;Titular&gt;();
		while(rs.next()){
			if(rs.getString("TIPO").equals("TITULAR")){
				
				System.out.println("\n------------------------------------------------------------------------------------------");
				System.out.println("...:: Estamos na linha: " + rs.getRow() + " Do ResultSet ::...");
				System.out.println("\n...:: Titular encontrado ::... : " + rs.getString("NOME"));
				
				titular = new Titular();
				titular.setNome(rs.getString("NOME"));
				
				titulares.add(titular);// adiciona o objeto na list
				
			}else{ //aqui ele atualiza os dependentes do objeto
				titular.addDendentes(rs.getString("NOME"));
				System.out.println("\n...:: Dependente encontrado: " + rs.getString("NOME") + "::...");
				
				titulares. //tem alguma forma de eu inserir este dependente no list ?
			}
			
		}
		return titulares;
	}

Conseguiram entender??