Buongiorno.
Devo creare un metodo che mi legga l'intero contenuto di una tabella di un database. Il database dell'esercizio è così formato:
(Matricola chiave primaria, Nome, Cognome, Timbrature)
Il metodo che ho scritto è questo
codice:
public void printAll() throws ClassNotFoundException, SQLException{ Ricerca search = new Ricerca();
UserInterface ui = new UserInterface();
Connection con = null;
Statement stmt = null;
ResultSet rs = null;
int matricola = 0, righe = 0;
try {
Class.forName(CLASS_NAME);
con = DriverManager.getConnection(URL, USERNAME, PASSWORD);
String sql = "SELECT * FROM utenti";
stmt = con.createStatement();
rs = stmt.executeQuery(sql);
rs.last();
righe = rs.getRow();
rs.beforeFirst();
for (int i = 0; i < righe; i++){
while (rs.nextRow()){
Utente user = new Utente();
matricola = rs.getInt(4);
user = search.cercaUtente(matricola);
ui.stampaUtente(user);
}
}
} finally{
rs.close();
stmt.close();
con.close();
}
}
Che a sua volta richiama il metodo cercaUtente che è quello qui sotto
codice:
public Utente cercaUtente(int matricola) throws ClassNotFoundException, SQLException { Connection con = null;
Statement stmt = null;
Utente utente = new Utente();
try {
Class.forName(CLASS_NAME);
con = DriverManager.getConnection(URL, USERNAME, PASSWORD);
stmt = con.createStatement();
ResultSet rs = stmt.executeQuery("SELECT * FROM utenti WHERE matricola = " + matricola);
while (rs.next()) {
utente.setMatricola(rs.getInt(1));
utente.setNome(rs.getString(2));
utente.setCognome(rs.getString(3));
utente.setTimbrature(rs.getInt(4));
}
} finally {
stmt.close();
con.close();
}
return utente;
}
Il metodo cercaUtente restituisce una istanza della classe Utente che ha gli stessi attributi presenti nella tabella del database.
Attualmente, dopo i vari esperimenti di inserimento e cancellazione, la tabella ha sei righe, il programma me le stampa tutte e sei, ma hanno tutti i valori settati a null.
Utente [matricola=0, nome=null, cognome=null, timbrature=0]
Utente [matricola=0, nome=null, cognome=null, timbrature=0]
Utente [matricola=0, nome=null, cognome=null, timbrature=0]
Utente [matricola=0, nome=null, cognome=null, timbrature=0]
Utente [matricola=0, nome=null, cognome=null, timbrature=0]
Utente [matricola=0, nome=null, cognome=null, timbrature=0]
Perchè mi accade questo? Cosa ho cannato nel codice?
Ringrazio in anticipo chi mi aiuterà!