public ResultSet executerRequeteSelect(Object... params) throws SQLException, IllegalStateException {
		
		// Vérification de l'existence de la connexion.
		if (this.conn == null) {
			fermerConnexion();
			throw new IllegalStateException("Impossible d'exécuter la requête car la connexion à la base de données n'a pas été établie");
		}

		// Vérification de l'existence de la requête préparée.
		if (this.ps == null) {
			fermerConnexion();
			throw new IllegalStateException("Impossible d'exécuter une requête qui n'a pas été préparée");
		}
		
		// Passage des paramètres à la requête préparée.
		try {
			for (int i=0; i < params.length; i++)
				this.ps.setObject(i+1, params[i]);
		} catch (SQLException se) {
			fermerConnexion();
			throw new SQLException("Échec lors du passage des paramètres à la requête SQL"
					+ " (" + se.getMessage() + ")", se);
		}
		
		// Exécution de la requête préparée.
		try {
			this.rs = this.ps.executeQuery();
		} catch (SQLException se) {
			fermerConnexion();
			throw new SQLException("Échec lors de l'exécution de la requête préparée : " + this.sql
					+ " (" + se.getMessage() + ")", se);
		}
		
		return this.rs;
	}