Salve a tutti, vi scrivo perchè ho bisogno di un consiglio.
Volevo un consiglio su come gestire i dati letti da una tabella di un database; per la precisione è un database di M.Office, letto dal codice Java in locale sul pc; ...sto cercando di realizzare una "lettura" dinamica dei dati, senza sapere a priori il contenuto, come numero di colonne, nomi colonne etc, perchè in futuro vorrei dare all'applicazione la possibilità di creare e gestire tabelle nel database in maniera "dinamica" appunto.
Vi posto per meglio descrivervi il tutto, alcune parti del codice....
Questo è il codice che da una classe generica richiama la classe e il metodo di lettura del database e aspetta il return dei dati:
codice:
ConnessioneDatabase istCallDati = new ConnessioneDatabase();
ArrayList<?> datiStazione = istCallDati.InterrogazioneDatabase("archivioDB","Personale");
Di seguito parte del codice con cui "compatto" nella classe ConnessioneDatabase e il metodo InterrogazioneDatabase i dati da affidare al return per restituirli alla Classe chiamante:
codice:
//RICAVO LE COLONNE
ResultSetMetaData metadata = datiChiamata.getMetaData();
int numeroColonne = metadata.getColumnCount();
datiPassati.add(numeroColonne.toString()); //PRIMO ELEMENTO = numeroColonne QUA MI DA ERRORE!!!
while(datiChiamata.next()) {
for (int i=0; i<numeroColonne; i++) {
datiPassati.add(metadata.getColumnName(i+1)+"|"+datiChiamata.getString(i+1));
}
}
return datiPassati;
Il return mi restuisce un ArrayList come in esempio:
codice:
[ 3, ID|0, nome|Pippo, età|38, ID|1, nome|Mario, età|45, ID|2, nome|Giulio, età|29 ]
dove l'indice [0] dell'ArrayList mi serve per capire quante colonne ho e poi splittare in tanti Array quanti sono le righe, cosi da avere:
codice:
ArrayUno[0]= ID|0
ArrayUno[1]= nome|Pippo
ArrayUno[2]= età|38
ArrayDue[0]= ID|1
ArrayDue[1]= nome|Mario
ArrayDue[2]= età|45
ArrayTre[0]= ID|2
ArrayTre[1]= nome|Giulio
ArrayTre[2]= età|29
Capisco che come metodo di gestione dei dati è molto scomodo, volevo provare con Object,
ma non capisco come gestirlo!! Vi chiedo quale secondo voi è il metodo migliore, così lo approfondisco e studio, Grazie.