Problema difícil ....com vetores e banco de dados

1 resposta
kiq095

hehehehe...

a quetao e o seguinte ...

fiz um programa q se conecta com qualquer tabela do banco de dados ... basta o usuario entrar com o nome dela e o nome dos campos da tabela..

pra fazer a consuta fiz assim ...

coloco o nome da tabela em uma string ... e o nome das colunas em um vetor ...ok
depois fasso um for e coloco de acordo com o tamanho do vetor e coloco os campos do vetor em uma string .. formado os campos do select..
fica uma coisa masi ou menos assim

SQL_LerDados=St.executeQuery("SELECT  "+Campos+"  FROM "+tabela);

e o resutado e o seguinte

SELECT  CAMPO1,CAMPO2,CAMPO3    FROM  TABELA

e ta rodando ..tudo certinho ...

mas e na hora de imprimir ....

como fasso pra rodar ...

e pegar os dados dos campos e da tabela ao mesmo tempo ???

tipo:

vetor[]
[CAMPO1]
[CAMPO2]
[CAMPO3]

o nome dos campos estao salvos nas posições do vetor

List TABELA_completa;

while(SQL_LerDados.next()){


                        TABELA_completa.add(SQL_LerDados.getString(campos_nome[1]));
                        TABELA_completa.add(SQL_LerDados.getString(campos_nome[2]));
                        }


    System.out.println(TABELA_completa);

mais tem um porem ..!!!!
eu nao sei nunca o nome dos campos e nem muito menos a quantidade de campos ...
masi sempre salvo todos no vetor ...
e o vetor tem no maximo 100 posições e no minimo 1 ...

de depois de pegar os dados do campo da posisao 0 pra gegar os dados da posiçao 1 .. e assim por diante ..??

pra entender melhor vo manda o codigo pra formar a string e pegar dados (masi ta errado )

//campos_nome e o vetor com os nomes ja salvos 
// cont e o tamanho que o vetor tem 

  for(int k=0;k<=cont;k++){
                    if(campos_nome[k]!=null){
//sempre somando os campos 
                      Campos=Campos+","+campos_nome[k];
                       }
                    else{
//acabo os capos escritos para o for 
                    k=cont;
                    cont=0;
                    }         
                    }
// retira a primeira virgola ... pra nao dar erro no select
                     Campos=Campos.substring(1,Campos.length());
                   SQL_LerDados=St.executeQuery("SELECT  "+Campos+"  FROM "+tabela);

esse codigo forma o select ... ate aqui ta ok ..

/
/ k e um inteiro so pra contar ...

while(SQL_LerDados.next()){


                        TABELA_completa.add(SQL_LerDados.getString(campos_nome[1k));
                         System.out.println(TABELA_completa);
                       
                        k++;
                    
                  }
// to tentando formar uma lista ou imprimir os dados ... masi fica muito grande e da a maior confusão

quem tiver alguma ideia posta ai ..!!!

1 Resposta

vinnysoft

Amigo,

Não intendi direito o que vc quer fazer. Mas pq nao utiliza um ArrayList? nele não precisa informar o tamanho, basta chamar o método add() para adicionar um dado na lista. Além disso, pode usar o iterator para percorrer o Array sem problemas.

Até +!

Criado 17 de março de 2011
Ultima resposta 20 de mar. de 2011
Respostas 1
Participantes 2