Estou preparando, um metodo para, armazenar uma lista de nomes de colunas. Esses nomes serão, adquiridos, a partir de um ResultSetMetaData. A principio, pensei em declarar essa variavel assim:
private String[] nomeDasColunas;
A algum problema quanto ao tipo e a forma que vou armazenar essas informações?
Eu prefiro utilizar List.
Veja a seguinte situação.
publicstaticString[]exemplo()throwsSQLException{ResultSetres=null;String[]vColunas=newString[10];//máximo 10 colunas/* * Código aqui */inti=0;while(res.next()){vColunas[i]=res.getString("coluna");i++;}returnvColunas;}publicstaticvoidmain(String[]args)throwsSQLException{String[]colunas=exemplo();/* * Lembrando que teremos, NO MÁXIMO, 10 colunas. * Mas e se vierem menos que 10? */for(Stringa:colunas){System.out.println(a);}}
Resultado obtido:
abbbnull//Só existem 4 objetos, os restantes serão nulos.nullnullnullnullnull
A interface list não permite que isso ocorra:
publicstaticList<String>exemplo()throwsSQLException{ResultSetres=null;List<String>retorno=newArrayList<String>();/* * Código aqui */while(res.next()){retorno.add(res.getString("coluna"));}returnretorno;}publicstaticvoidmain(String[]args)throwsSQLException{List<String>colunas=exemplo();/* * Lembrando que teremos, NO MÁXIMO, 10 colunas. * Mas e se vierem menos que 10? */for(Stringa:colunas){System.out.println(a);}}
Resultado obtido:
abbb
ok?
Marky.Vasconcelos
Uma List seria mais legal. E se voce pensasse mais OO poderiam ser objetos que sabem o nome da coluna e o que fazer com o dado correspondente.
O que voce vai implementar?
KaosBr
Boa tarde,
O ArrayList é realmente a melhor opção, renamed, vou trabalhar com ele. vlw
Acho que entendi, Marky.Vasconcelos, o ideal é que eu crie classes para as tabelas. E manipular, as informações, em um ArrayList criado com base nessa classe. É isso mesmo?
O que pretendo fazer é, listar todos os nomes das colunas, e campos com seus respectivos dados.
Obrigado pela ajuda até o momento.
[]s
Marky.Vasconcelos
É isso mesmo.
Por exemplo voce teria a interface coluna que teria os metodos getName e getValue(T obj). Sendo T o objeto em comum das colunas, essa classe sera responsavel por ter o nome da tabela e ainda pode invocar o metodo getValue com o objeto que voce tera o dado certo da coluna de acordo com o objeto.
KaosBr
Show de bola, vou trabalhar dessa forma, muito obrigado pela ajuda.