
Originariamente inviata da
LeleFT
Dall'eccezione sembra che tu stia cercando di leggere i dati dal ResultSet dopo che questo è stato chiuso.
Un ResultSet può risultare chiuso in 3 casi:
1) Dopo una esplicita chiamata a rs.close();
2) Dopo una esplicita chiamata a stmt.close(); (dove stmt è lo Statement che l'ha generato)
3) Dopo una esplicita chiamata a con.close(); (dove con è la Connection al database)
Esiste anche una quarta possibilità (non ricordo, però, se effettivamente l'Exception sollevata sia quella o altra simile), ma non credo sia il tuo caso (almeno non ho elementi per poterlo supporre, visto che il codice postato è effettivamente troppo poco).
Ad ogni modo un consiglio: nel while() in cui scorri il ResultSet prima di tutto dovresti leggere i valori dal ResultSet e memorizzarli all'interno di variabili / beans. Dopodichè tutte le elaborazioni sui valori falle direttamente sulle variabili / beans, non più sul ResultSet. Ossia:
codice:
while( rs.next() ) {
// Prima leggo il ResultSet
String id = rs.getString("id");
String user = rs.getString("user");
String pwd = rs.getString("password");
// Le elaborazioni ora le faccio sulle variabili e non più sul ResultSet (questo non lo tocco più)
if (username.equals(user) && password.equals(pwd) ... ) {
...
}
}
Questo ti evita un sacco di problemi subdoli dovuti a "particolarità" dipendenti dal DBMS...
Ciao.
