Newsgroup: it.comp.java
Titolo: SQL, ResultSet e Container: Performance

Salve a tutto il ng.
Ho una super-domanda di concetto.
Documentandomi sui vecchi post per capire come gestire il DB in 
un'applicazione con struts, sono giunto alla conclusione che creare una 
classe che mi restituisce un ResultSet aperto, e' una cosa profondamente 
scorretta e sono anche convinto delle motivazioni.
Ora ho pero' un ulteriore dubbio.
Poniamo di creare la seguente classe deputata a contenere e ciclare i dati:
public class DataCollection extends ArrayList{
   private Map tupla = new HashMap();
   public void riempi(java.sql.ResultSet rset){
     ...........
   }
}
quando richiamo il mio DataConnection.riempi(rset) potrei rischiare di 
inchiodare il mio sistema, nel caso in cui avessi troppe righe. Qual'e' 
un modo migliore per riempire questo oggetto, senza dover ciclare per 
forza tutti i record?
Poi un'altra perplessita'. Dato che il mio Container dovra' servire a 
passare le informazioni allo strato di JSP, ho la necessita' che 
implementi l'interfaccia Iterator per poter usare il tag <forEach/>, non 
e' vero?
Spero di esser stato sufficientemente chiaro, vi ringrazio per la pazienza,
ciao ciao
Davide

Ciao, Davide!
Il giorno 17/05/2004 alle ore 20:06 hai scritto:
 D> quando richiamo il mio DataConnection.riempi(rset) potrei rischiare di
 D> inchiodare il mio sistema, nel caso in cui avessi troppe righe. Qual'e'
 D> un modo migliore per riempire questo oggetto, senza dover ciclare per
 D> forza tutti i record?
Dipende, se i record ti servono tutti non hai molta scelta (ma in questo
caso penso tu possa tranquillamente ciclare la lettura durante l'output), se
invece implementi una paginazione puoi usare la clausola LIMIT dell'SQL per
leggere solo i record necessari ad una pagina.
Bye
-- 
Fear is the path to the Dark Side.
http://www.maccasoft.com

 leggere solo i record necessari ad una pagina.
Innanzitutto ti ringrazio per la risposta immediata!
Poi una domandina, come faccio poi a prendere i dati successivi?
Devo memorizzare l'ultimo record stampato?
Immagino che piu' info le trovo sul manualone di oracle!
Grazie ancora,
Davide

 Immagino che piu' info le trovo sul manualone di oracle!
in oracle mi pare non esista la limit. (potrei sbagliarmi)
-- 
Davide Consonni 
dcon...@enter.it

 
E questo e' un problema... e' nelle specifiche Oracle come DB

 E questo e' un problema... e' nelle specifiche Oracle come DB
no problema 
http://andrej.racchvs.com/archive/2003/12/24/use_rownum_instead_of_scrollable_resultsets.html
-- 
Davide Consonni 
dcon...@enter.it

 
Dio benedica i gruppi!!! :)
Grazie!

Ciao, Davide!
Il giorno 17/05/2004 alle ore 20:33 hai scritto:
 D> Poi una domandina, come faccio poi a prendere i dati successivi?
 D> Devo memorizzare l'ultimo record stampato?
Gestendo una visualizzazione a pagine, sai quanti record contiene ogni
pagina e il numero della pagina da visualizzare. Basta una semplice
moltiplicazione per sapere da che record partire.
Bye
-- 
Try not. Do, or do not. There is no try.
http://www.maccasoft.com

[CUT]
Grazie mille a tutti per le risposte,
mi siete stati di grande aiuto!
ciao,
Davide

 in oracle mi pare non esista la limit. (potrei sbagliarmi)
Esiste la pseudocolonna rownum.