Bom dia pessoal, mais um vez venho com uma duvida que talvez seja idiota para alguns, mas ninguem é obrigado à respondê-la, se responder estarei muito agrecido.
Tenho uma frame na qual possuo duas jTables, duas jComboBox, um jTextField, etc, etc. Enfim, os campos do banco de dados aparecem na jTable1, e eu posso passar eles para a jTable2 (ESTA FRAME ESTÁ 100% FUNCIONANDO, SEM INCONSISTENCIA DE DADOS). Porém, ai que vem a treta.
Nesta jTable2, posso definir que o meu relatório terá de 1 à n campos, do banco de dados.
Possuo tres listas de objetos dos campos: uma lista padrão com todos os campos possiveis, uma lista para a jTable1 e outra para a jTable2. a Lista padrão nunca muda, e as listas específicas se atualizam em tempo de execução, por exemplo: seleciono um campo para fazer parte da consulta e depois escolho retirar ele.
Possuo um método que recebe a lista de campos da jTable2 [cada instância desta lista está situada numa linha da jTable2, a lista é de objeto e o nome do campo no banco de dados eu obtenho atraves do .toString()], concatena eles numa String de consulta SQL, este método retorna esta String. Recebo este método como parâmetro, abro a conexão, etc e etc, e chego na parte final.
Para cada interação do ResultSet, devo retornar os campos que eu quero, desde registro. Então, decidi não usar conceitos de Bean, afinal teria que ter um método para filtrar os getters e setter que eu deveria usar da Bean, talvez isso tornaria o sistema meio lento.
Então, o método de consulta (que retornará uma ArrayList) também recebe a mesma lista que o método de gerar a String de consulta SQL. Para cada linha da ResultSet, um laço de repetição deverá obter o conteudo de cada campo na forma de Object, adicionar num Vector, e adicionar este Vector á uma ArrayList de Vector’s.
Ai que mora o problema, se eu obter cada campo do ResultSet com o tipo de Object, nao haverá problema se o campo na tabela retornar num Null. Porém, ao popular a nova jTable com o resultado da consulta, não sei como farei para distinguir cada campo, afinal o TableModel que eu crio é dinâmico, posso colocar de 1 a n colunas e cada coluna, creio eu, deve ter o seu tipo de dado pré-determinado.
Talvez poderia fazer o Casting à parte, mas isso seria impossivel pelo menos até aonde consigo imaginar.
Quem puder me ajudar agradeço muito, caso queira discutir sobre o meu problema ou talvez o seu, pode enviar e-mail para: takeshi.spoow@hotmail.com
Att. Robert