PDA

View Full Version : [JAVA e SQL] Partire da...


Sergei
04-02-2013, 10:54
Innanzitutto chiedo scusa perché molto probabilmente sarà criptico. Il fatto è che so quello che voglio fare ma non so spiegarlo e proprio questo problema mi porta a non essere in grado di fare una ricerca su google :(

Il titolo non è affatto fuorviante. Io ho un catalogo. Immaginiamo che sia una collana di libri, ok? Ho fatto una maschera per sfogliare tutto il catalogo. Bene, fin qui nessun problema. Ora in questa maschera se non volessi partire dall'inizio ma partire dal libro 123 c'è un modo? Cosa dovrei cercare?
Perché per avanzare uso il metodo next di ResulSet ma se volessi dirgli che deve partire dal libro numero 123 che che si trova sulla riga x nella tabella x come dovrei fare? Ma soprattutto è possibile farlo?

Grazie mille anticipatamente :stordita:

Mettiu_
04-02-2013, 11:30
Innanzitutto chiedo scusa perché molto probabilmente sarà criptico. Il fatto è che so quello che voglio fare ma non so spiegarlo e proprio questo problema mi porta a non essere in grado di fare una ricerca su google :(

Il titolo non è affatto fuorviante. Io ho un catalogo. Immaginiamo che sia una collana di libri, ok? Ho fatto una maschera per sfogliare tutto il catalogo. Bene, fin qui nessun problema. Ora in questa maschera se non volessi partire dall'inizio ma partire dal libro 123 c'è un modo? Cosa dovrei cercare?
Perché per avanzare uso il metodo next di ResulSet ma se volessi dirgli che deve partire dal libro numero 123 che che si trova sulla riga x nella tabella x come dovrei fare? Ma soprattutto è possibile farlo?

Grazie mille anticipatamente :stordita:

L'ordine delle righe restituite da una query può essere manipolato tramite la clausola "order by" di SQL, altrimenti dovrebbe restituirtele nell'ordine di inserimento (ma non è affatto detto). Una volta che hai capito come ordinarle, puoi prelevare le entries in un certo range tramite la clausola LIMIT la cui sintassi e semantica puoi trovare qui (http://php.about.com/od/mysqlcommands/g/Limit_sql.htm). Ho supposto che stai utilizzando MySQL! Infatti LIMIT non è standard (disponibile su MySQL e Postgre, se non erro).
Spero di esserti stato utile.

Sergei
04-02-2013, 13:49
Innanzitutto grazie per la risposta!
Sì, uso MySQL. Ho provato come hai detto ed effettivamente funziona alla grande, non c'avevo proprio pensato :(
Il problema riguarda la parte in JAVA ora. Riesco a centrare il numero che mi interessa e a far comparire i dati a video, però se volessi continuare a sfogliare il catalogo partendo da quel numero non mi risulta possibile :(
Non riesco a capire se è un problema relativo a JAVA o MySQL. Mi spiego. Per andare avanti utilizzo un metodo che prende la query:
"SELECT * FROM tabella"
e poi con il metodo next di ResultSet avanzo e riempio i campi.

Nel caso dovessi partire da LIMIT 2, 1 le cose sarebbero diverse. Oddio... mi sono perso io stesso :stordita:

EDIT:
ok, finalmente ho fatto pace col cervello e ho risolto. Bastava cambiare la query aggiungendo LIMIT inizio e fine, dove l'inizio e la fine la prende da due variabili. Ora il problema è ottenere una variabile con il numero totale di record. Con la query:
SELECT COUNT(*) FROM tabella
ottengo il numero di record ma come faccio a memorizzare questo valore in una variabile? Ora ci penso...

Mettiu_
04-02-2013, 17:19
Ora il problema è ottenere una variabile con il numero totale di record. Con la query:
SELECT COUNT(*) FROM tabella
ottengo il numero di record ma come faccio a memorizzare questo valore in una variabile? Ora ci penso...

Prova qualcosa del genere:

ResultSet rset = stmt.executeQuery ("SELECT COUNT(*) FROM tabella");
int num_record = rset.getInt(1);

Sergei
04-02-2013, 18:42
Ti ringrazio mille!