Bonjour,
je dois faire une fonction qui doit retourner une liste des personnes sous forme de tableau. Voici sa signature:
public Personne[] List()
le problème est que je ne sais pas par où commencer.
Des conseils?
Merci
Version imprimable
Bonjour,
je dois faire une fonction qui doit retourner une liste des personnes sous forme de tableau. Voici sa signature:
public Personne[] List()
le problème est que je ne sais pas par où commencer.
Des conseils?
Merci
Je vais regarder dans ma boule de cristal....
Il faut que tu précise ce que tu veux ... déja d'ou vienne tes personnes, comment les récupère tu ....
Précisons donc.
Les personnes viennent d'une base de données, et je les récupère via JDBC.
J'ai fait des méthodes pour insérer, updater et supprimer, et j'ai fait des test avec une classe Main très simple.
Je regarde dans les bouquins, il faut que je commence par créer un tableau (je suppose) rempli de String(?); faut-il faire quelque chose qui va parcourir la base de données? sous quelle forme?
Il faut que tu execute ta requete, que tu récupère un ResultSet et que tu le parcours pour remplir ton tableau.
quel est le meilleur moyen pour parcourir un tableau?
d'ailleurs, je dois déclarer un tableau multidimensionnel? Je dois récupérer nom, prénom, age, primary key (dans ma base test)
Ta méthode peut ressemblé a ça:
puis tu lis ton tableau par un sau de nombreDeColonneCode:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 import java.util.ArrayList; public Class NomDeTaClasse extends NomDeLaClasseDeConnexionBDD { private ArrayList tonTableau; public ArrayList List() { methodeConnexion(); methodeLecture(taRequete); tonTableau = new ArrayList(); While(resultat.next()) // resultat est de type ResultSet, contient le resultat de ta requete { for(int i=1;i<=nombreDeColonne;i++) tonTableau.add(resultat.getString(i)); } return tonTableau; } }
Un saut... dsl il manque le t, bref... a l'affichage, ton code doit ressembler a ça:
Le saut est égal a 4 dans ce cas.Code:
1
2
3
4
5
6
7
8
9
10 int i = 0; while(i<tonTableau.size()) { System.out.println("nom : "+tonTableau.get(i)); System.out.println("prenom : "+tonTableau.get(i+1)); System.out.println("age : "+tonTableau.get(i+2)); System.out.println("key : "+tonTableau.get(i+3)); i = i+4; }
l'ordre d'affichage dépend de l'ordre de tes colonnes dans la table.
J'ai vu dans la FAQ à propos de resultSet, que le parcours se fait par rapport aux lignes avec la méthode next()
Faut-il raisonner en termes de colonnes ou de lignes?
Les 2 mon capitaine. Tu parcours tes lignes, puis pour chaque ligne tu peux accéder à une colonne par son nom, son index ou parcourir toutes les colonnes comme foubou te l'a montré.
OK. Mettons que je veuille parcourir mes lignes, et ej fais le code suivant
il ne veut pas de la ligne "Liste.add(resultat.getString(i));" à cause de addCode:
1
2
3
4
5
6
7
8
9
10
11
12
13 public Personne[] List() throws Exception { PreparedStatement tab = getPreparedStatement("SELECT * FROM TblPersonnes"); ResultSet resultat = tab.executeQuery(); Personne [] Liste = new Personne[40]; while (resultat.next()){ for (int i=1;i<=Liste.length;i++) Liste.add(resultat.getString(i)); } tab.getConnection().close(); return Liste; }
Comment ajouter donc la ligne au tableau?
Je pense qu'il faut que tu t'intéresse à base du langage notamment à la manipulation de tableau.
nombreDeColonnes c le nombre de colonnes dans ta table TblPersonnes, si ta table contient que key, nom, prenom et age, alors tu affecte la valeur 4 a nombreDeColonnes:
remplace ça:
par:Code:for (int i=1;i<=Liste.length;i++)
Code:
1
2
3 int nombreDeColonnes = 4; for (int i=1;i<=nombreDeColonnes;i++)
Merci foubou