Utilizzando le jdbc ho dovuto far uso dell'iteratore ResultSet, ora però vorrei sapere se per questo iteratore, esiste un modo di stampare più righe con getString. O meglio ho una lista di dati identificati da un id, effettuo l'interrogazione sql facendo stampare a video una lista degli elementi con id differenti, utilizzando il distinct di sql, poichè vi possono essere elementi con id uguali poichè l'id non l'ho dichiarato come chiave primaria. Successivamente assegnando un indice ad ogni id, uso il metodo absolute del Result set per accedere ad un determinato id in modo da stampare tutti gli attributi di quel dato. Vorrei però che mi stampasse anche gli altri elementi che hanno id uguale a quello scelto da me. E' possibile farlo??
Posto il mio codice:
codice:
public void addTransazione(int id_partita, String giocatore, float d, int vincita){
try{
Statement st = DbAccess.getConnection().createStatement();
st.executeUpdate("INSERT INTO transazioni (ID_PARTITA, GIOCATORE, PUNTEGGIO, VINCITA)"+
"VALUES ('"+id_partita+"','"+giocatore+"','"+d+"','"+vincita+"')");
st.close();
}catch(SQLException e){
System.out.println("Inserimento non eseguito");
e.printStackTrace();
}
}
public ArrayList<TransazioneDB> getTransazioni(int id_partita){
ArrayList<TransazioneDB> tr = new ArrayList<TransazioneDB>();
int i = 1;
int a;
try{
Statement s = DbAccess.getConnection().createStatement();
/*ResultSet r = s.executeQuery(" SELECT ID_PARTITA" +
" FROM transazioni ");*/
ResultSet r = s.executeQuery("SELECT ID_PARTITA,GIOCATORE,PUNTEGGIO,VINCITA" +
" FROM transazioni "+
" GROUP BY ID_PARTITA");
while(r.next()){
System.out.println(i+") "+r.getString(1));
tr.add(new TransazioneDB("giocatore",PUNTEGGIO,VINCITA));
i++;
}
r = s.executeQuery(" SELECT ID_PARTITA, GIOCATORE, PUNTEGGIO, VINCITA" +
" FROM transazioni "+
" GROUP BY ID_PARTITA");
a = video.chiediInteger("Inserisci il numero della partita di cui si vuole storico: ");
if(r.absolute(a))//absolute sceglie la posizione in cui accedere
System.out.println("\n"+ r.getString(2) +" , "+ r.getString(3)+" , "+ r.getString(4));
s.close();
}catch(SQLException e){
System.out.println("Inserimento non eseguito");
e.printStackTrace();
}
return tr;
}