Tout d'abord bonjour à tous.
Je tiens à préciser qu'avant de poster ce message, j'ai regardé quelques tutoriels et sur quelques forum mais rien n'a pu m'aider sur mon problème.
J'essaie de créer un logiciel de gestion de compte avec une base de données en .xml. Le logiciel est simple, je créé un utilisateur et je l'enregiste dans la base de donnée, là dessus pas de problème. Ensuite pour le charger, pas de problème également. Le problème arrive quand je veux insérer dans l'utilisateur chargé (que j'ai appelé utilisateurCourant) une liste de Compte Utilisateurs, sachant qu'un utilisateur peut en avoir plusieurs. Sur les tutorials que j'ai vu, il indique comment insérer un nouveau terme du type String ou autre, mais pour une liste cela ne fonctionne pas.
Si qqun pourrait m'aider à ce sujet, ce serait vraiment sympa. Merci
PS : je souhaite vraiment que les comptes soit dans l'utilisateur créé qui sont eux-même dans une liste "utilisateurs". je ne veux pas créer un fichier .xml pour chaque utilisateur. D'autre part, il y a sûrement des erreurs grossière, c'est juste en attente de trouver une solution que je les ai laissé
Voilà une partie de mon code, ce que je penses être essentiel :
Dans la classe gestion, il y a :
Dans la classe Util, il y a :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42 public void creerCompte() throws IOException { Scanner lectureClavier = new Scanner(System.in); System.out.println("Type de compte"); System.out.println("1. Courant"); System.out.println("2. Joint"); System.out.println("3. Epargne"); System.out.print("Faites votre choix : "); String retour1 = lectureClavier.next(); byte choix1 = Byte.parseByte(retour1); String typeCompte = null; switch(choix1) { case 1 : //Courant typeCompte = "C"; case 2 : //Joint typeCompte = "J"; case 3 : //Epargne typeCompte = "E"; break; default : System.out.println("Mauvais choix, veuillez recommencer"); } System.out.print("Numero du compte : "); String numCompte = lectureClavier.next(); System.out.print("Première valeur créditée : "); String retour3 = lectureClavier.next(); float pvCreditee = Float.parseFloat(retour3); System.out.print("Taux de placement (en pourcentage) : "); String retour4 = lectureClavier.next(); float tauxPlacement = Float.parseFloat(retour4); List<CompteUtilisateur> usersAccount = Util.getInstance().loadUsersAccount(utilisateurCourant); CompteUtilisateur compteUtilisateur = new CompteUtilisateur(numCompte, typeCompte, pvCreditee, tauxPlacement); usersAccount.add(compteUtilisateur); Util.getInstance().saveUsersAccount(usersAccount,utilisateurCourant); System.out.println("Pour continuer, appuyer sur Entrée"); if ('\n' == System.in.read()); pageCompte(); }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56 private final static Util instance = new Util(); static XStream stream = new XStream(); Util() { } public static synchronized Util getInstance() { return instance; } @SuppressWarnings("unchecked") public List<Utilisateur> loadUsers() { stream.alias("Utilisateurs", List.class); stream.alias("Utilisateur", Utilisateur.class); List<Utilisateur> users = null; try { FileInputStream inputStream = new FileInputStream(new File("./users.xml")); users = (List<Utilisateur>) stream.fromXML(inputStream); } catch (FileNotFoundException e) { e.printStackTrace(); } return users; } public void saveUsers(List<Utilisateur> users) throws FileNotFoundException { FileOutputStream outputStream = new FileOutputStream(new File( "./users.xml")); stream.toXML(users, outputStream); } @SuppressWarnings("unchecked") public List<CompteUtilisateur> loadUsersAccount(Utilisateur utilisateurCourant) { Gestion gestion = new Gestion(); utilisateurCourant = gestion.getutilisateurCourant(); stream.alias("CompteUtilisateurs", List.class); stream.alias("CompteUtilisateur", CompteUtilisateur.class); List<CompteUtilisateur> usersAccount = null; try { FileInputStream inputStream = new FileInputStream(new File("./users.xml")); usersAccount = (List<CompteUtilisateur>) stream.fromXML(inputStream); } catch (FileNotFoundException e) { e.printStackTrace(); } return usersAccount; } public void saveUsersAccount(List<CompteUtilisateur> userAccount, Utilisateur utilisateurCourant) throws FileNotFoundException { FileOutputStream outputStream = new FileOutputStream(new File("./users.xml")); stream.toXML(userAccount , outputStream); }
Partager