|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Oct 2001
Città: Prov. di Frosinone
Messaggi: 948
|
[JAVA] Database (result set)
Ciao
Ho questo pezzo di codice: ------------------------------------------------ public static Vector findDB(String lemma, Connection conn) { try{ if(conn!=null) { Statement st = conn.createStatement(); String query= ("select * from Ontologie where lemma='"+lemma+"'"); ResultSet rs = st.executeQuery(query); ResultSet rsIpo; ResultSet rsIper; String significato, sinonimi; Vector ipernomi = new Vector(); Vector iponomi = new Vector(); Vector vect = new Vector(); //Le righe hanno 3 campi while(rs.next()) { significato = rs.getString(2); sinonimi = rs.getString(3); rsIpo = st.executeQuery("select * from Iponomi where significato='"+significato+"'"); while(rsIpo.next()) iponomi.addElement(rsIpo.getString(3)); rsIper = st.executeQuery("select * from Ipernomi where significato='"+significato+"'"); while(rsIper.next()) ipernomi.addElement(rsIper.getString(3)); vect.addElement(new Word(lemma, significato, sinonimi, ipernomi, iponomi)); } st.close(); return vect; } else return null; }catch(Exception e) {e.printStackTrace(); return null;} }//Fine findDB ------------------------------------------ Prima iponomi e ipernomi erano una semplice stringa, e non avevo quindi bisogno dei due pezzi: Codice:
rsIpo = st.executeQuery("select * from Iponomi where significato='"+significato+"'");
while(rsIpo.next())
iponomi.addElement(rsIpo.getString(3));
Codice:
rsIper = st.executeQuery("select * from Ipernomi where significato='"+significato+"'");
while(rsIper.next())
ipernomi.addElement(rsIper.getString(3));
Ora mi sono però reso conto che con quelle due chiamate è come se "azzerassero" il ResultSet iniziale (rs). Ad esempio, per Lemma="dog" rs dovrebbe avere 7 righe. E se elimino quei due passaggi è ciò che succede(nel vettore "vect" che mi viene restituito, ho in effetti 7 oggetti). Lasciandoli invece, mi restituisce un "vect" con un oggetto solo... E' come se leggesse la prima riga di rs, e poi, dopo le successive chiamate sullo statement st, azzerasse il result set, uscendo quindi immediatamente alla successiva iterazione del ciclo più esterno. Come posso procedere? Spero di essere stato comprensibile
|
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Oct 2001
Città: Prov. di Frosinone
Messaggi: 948
|
Ho risolto... avevo provato a creare più statement, ma mi dava un'eccezione e quindi pensavo fosse sbagliato. Invece il problema era un altro...
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 02:32.



















