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à!