Je développe une application de gestion commerciale en Java .J'aimerais y intégrer un système de gestion des utilisateurs avec groupe. En effet chaque utilisateur appartient à un groupe il y'a plusieurs groupe Administrateur, commerciaux, comptable..etc. Par conséquent chaque utilisateur connecté doit être identifié et les manipulation qu'il pourra effectuer seront stockées en quelque sorte. On pourra savoir quel utilisateur à créer tel client, quel utilisateur à réaliser tel facture ou tel état ou tel ou telle suppression c'est en gros à ça que doit me servir mon système de gestion d'utilisateur. J'aimerais vraiment avoir votre aide comment gérer ma connexion et ma classe utilisateur pour qu'elle puisse prendre en compte ce type de système de gestion des utilisateurs.
L'ID utilisateur est une clé étrangère dans ma table client lors de l'insertion d'un nouveau client je ne sais pas comment m'y prendre. sérieusement je suis bloqué et j'arrive pas à avancé.
Voici le code source de ma fenêtre connexion ainsi que la classe qui gère cette connexion
parametre.java
controleconnexion.java
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 package entite; public class Parametres { private String nomUtilisateur; private String motDePasse; private String url; public Parametres(){ nomUtilisateur = "root"; motDePasse = "Meuguiwarano2014"; url = "jdbc:mysql://localhost/swecombd"; } public String getNomUtilisateur() { return nomUtilisateur; } public void setNomUtilisateur(String nomUtilisateur) { this.nomUtilisateur = nomUtilisateur; } public String getMotDePasse() { return motDePasse; } public void setMotDePasse(String motDePasse) { this.motDePasse = motDePasse; } public String getUrl() { return url; } public void setUrl(String url) { this.url = url; } }
utilisateur.java
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
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101 package controle.connection; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import entite.Parametres; import javax.swing.JOptionPane; public class ControleConnexion { // Les propriétés static Parametres lesParametres; static boolean etatConnexion; static Connection laConnectionStatique; static{ boolean ok = true; lesParametres = new Parametres(); try { Class.forName("com.mysql.jdbc.Driver"); etatConnexion = true; } catch (ClassNotFoundException e) { JOptionPane.showMessageDialog(null, "Classe non trouvés pour le chargement" + "du pilotes mySql", "ALERTE" , JOptionPane.ERROR_MESSAGE); ok = false; etatConnexion = false; } // Etablissement de la connection //--------------------------------- if(ok == true){ try{ // Récupération des paramètres présents dans la classe paramètres String url = lesParametres.getUrl(); String nomUtilisateur = lesParametres.getNomUtilisateur(); String MDP = lesParametres.getMotDePasse(); // Création d'une connection contenant les paramètres laConnectionStatique = (Connection) DriverManager.getConnection(url, nomUtilisateur, MDP); etatConnexion = true; }catch (Exception e){ JOptionPane.showMessageDialog(null, "Impossible de se connecter à la " + "bases de données", "ALERTE", JOptionPane.ERROR_MESSAGE); etatConnexion = false; } } } // Constructeurs public ControleConnexion(){ } public ControleConnexion(int choix){ } // Methodes // Les accesseurs public static Parametres getParametres() { return lesParametres; } public static boolean getControleConnexion() { return etatConnexion; } public static Connection getConnexion() { return laConnectionStatique; } // Les autres méthodes // Contôles des paramètres saisie par l'utilisateur public static boolean controle(String Nom, String MotDePasse){ //1. Vérification de la saisie boolean verificationSaisie; if(Nom.equals(lesParametres.getNomUtilisateur()) && MotDePasse.equals(lesParametres.getMotDePasse())){ verificationSaisie = true; }else{ JOptionPane.showMessageDialog(null, "Login et / ou Mot de Passe Incorrects " + '\n'+ " SVP Veuillez Réessayez","ERREUR", JOptionPane.ERROR_MESSAGE); verificationSaisie = false; } return verificationSaisie; } // Methode pour fermer la connexion à la fin de l'éxécution de l'application public static void fermetureSession(){ try{ laConnectionStatique.close(); }catch(SQLException e){ JOptionPane.showMessageDialog(null, "Problème rencontré à la fermeture" + "de la connexion", "ERREUR",JOptionPane.ERROR_MESSAGE); } } }
client.java
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
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90 package entite; import java.sql.Connection; import java.sql.Date; import java.util.ArrayList; import controle.connection.ControleConnexion; public class Utilisateur { // PROPRIETES //Proppriétés de base de la classe //================================ private String code_utilisateur; private Groupe code_groupe; private String libelle_utilisateur; private Date datecreation; // Propriété pour établir la connection avec la BD // ----------------------------------------------- private static Connection laConnexion = ControleConnexion.getConnexion(); // propriété de type ArrayList qui contiendra les enregistrements de la BD // ----------------------------------------------------------------------- private final ArrayList<Utilisateur> lesEnreg = new ArrayList<Utilisateur>(); // Getters //-------------------------- public String getCode_utilisateur() { return code_utilisateur; } public Groupe getCode_groupe() { return code_groupe; } public String getLibelle_utilisateur() { return libelle_utilisateur; } public Date getDatecreation() { return datecreation; } // Getter pour transmettre l'ArrayList // ----------------------------------- public ArrayList<Utilisateur> getLesEnreg() { return lesEnreg; } // Setters //-------------------- public void setCode_utilisateur(String code_utilisateur) { this.code_utilisateur = code_utilisateur; } public void setCode_groupe(Groupe code_groupe) { this.code_groupe = code_groupe; } public void setLibelle_utilisateur(String libelle_utilisateur) { this.libelle_utilisateur = libelle_utilisateur; } public void setDatecreation(Date datecreation) { this.datecreation = datecreation; } //CONSTRUCTEURS //============================ // 1er Contructeur public Utilisateur(String code_utilisateur, Groupe code_groupe, String libelle_utilisateur, Date datecreation) { this.code_utilisateur = code_utilisateur; this.code_groupe = code_groupe; this.libelle_utilisateur = libelle_utilisateur; this.datecreation = datecreation; } // 2eme Contructeur public Utilisateur (String code_utilisateur){ this.code_utilisateur = code_utilisateur; } }
article.java
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
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250 package entite; import java.sql.Connection; import java.sql.Date; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.ArrayList; import javax.swing.JOptionPane; import controle.connection.ControleConnexion; public class Client{ // PROPRIETES //Proppriétés de base de la classe //================================ private String code_client; private Utilisateur code_utilisateur; private String nom_client; private Date datecreation; private double solde; private String adresse; private String telephone; private String email; private String numero_contribuable; private String prenom; private String registre_commerce; private String ville; // Propriété pour établir la connection avec la BD // ----------------------------------------------- private static Connection laConnexion = ControleConnexion.getConnexion(); // propriété de type ArrayList qui contiendra les enregistrements de la BD // ----------------------------------------------------------------------- private final ArrayList<Client> lesEnreg = new ArrayList<Client>(); // Getters //-------------------------- public String getCode_client() { return code_client; } public Utilisateur getCode_utilisateur() { return code_utilisateur; } public String getNom_client() { return nom_client; } public Date getDatecreation() { return datecreation; } public double getSolde() { return solde; } public String getAdresse() { return adresse; } public String getTelephone() { return telephone; } public String getEmail() { return email; } public String getNumero_contribuable() { return numero_contribuable; } public String getPrenom() { return prenom; } public String getRegistre_commerce() { return registre_commerce; } public String getVille() { return ville; } // Getter pour transmettre l'ArrayList // ----------------------------------- public ArrayList<Client> getlesEnreg() { return lesEnreg; } // Setters public void setCode_client(String code_client) { this.code_client = code_client; } public void setCode_utilisateur(Utilisateur code_utilisateur) { this.code_utilisateur = code_utilisateur; } public void setNom_client(String nom_client) { this.nom_client = nom_client; } public void setDatecreation(Date datecreation) { this.datecreation = datecreation; } public void setSolde(double solde) { this.solde = solde; } public void setAdresse(String adresse) { this.adresse = adresse; } public void setTelephone(String telephone) { this.telephone = telephone; } public void setEmail(String email) { this.email = email; } public void setNumero_contribuable(String numero_contribuable) { this.numero_contribuable = numero_contribuable; } public void setPrenom(String prenom) { this.prenom = prenom; } public void setRegistre_commerce(String registre_commerce) { this.registre_commerce = registre_commerce; } public void setVille(String ville) { this.ville = ville; } // CONSTRUCTEURS // ------------- // 1er Constructeur pour la création complète d'un client public Client(String code_client, Utilisateur code_utilisateur, String nom_client, Date datecreation, double solde, String adresse, String telephone, String email, String numero_contribuable, String prenom, String registre_commerce, String ville) { this.code_client = code_client; this.code_utilisateur = code_utilisateur; this.nom_client = nom_client; this.datecreation = datecreation; this.solde = solde; this.adresse = adresse; this.telephone = telephone; this.email = email; this.numero_contribuable = numero_contribuable; this.prenom = prenom; this.registre_commerce = registre_commerce; this.ville = ville; } // 2eme Constructeur // pour les recherches rapides basées uniquement sur le code public Client(String code_client){ this.code_client = code_client; } // 3ème constructeur spécial utile pour les classes qui veulent juste récupérer l'ArrayList avec les enregistrements // => utilisation ensuite du getter prévu à cet effet public Client(){ lireRecupCRUD(); } // 4eme Constructeur pour l'affichage dans la gestion des commandes public Client(String nom_client, String prenom){ this.nom_client = nom_client; this.prenom = prenom; } // Lecture et récupération des enregistrement de la BD public void lireRecupCRUD(){ try{ Statement state = laConnexion.createStatement(); ResultSet rs = state.executeQuery("SELECT * FROM client ORDER BY nom_client"); while(rs.next()){ String code_client = rs.getString("code_client"); String code_utilisateur = rs.getString("code_utilisateur"); String nom_client = rs.getString("nom_client"); Date datecreation = rs.getDate("datecreation"); double solde = rs.getDouble("solde"); String adresse = rs.getString("adresse"); String telephone = rs.getString("telephone"); String email = rs.getString("email"); String numero_contribuable = rs.getString("numero_contribuable"); String prenom = rs.getString("prenom"); String registre_commerce = rs.getString("registre_commerce"); String ville = rs.getString("ville"); lesEnreg.add(new Client(code_client, new Utilisateur(code_utilisateur),nom_client, datecreation, solde, adresse, telephone, email, numero_contribuable, prenom, registre_commerce, ville)); } }catch(SQLException e){ JOptionPane.showMessageDialog(null,"Problème Renconté : " + e.getMessage(),"Resultat", JOptionPane.ERROR_MESSAGE); } } // Ajout d'un nouveau Client dans la bd public boolean creerCRUD(String code_client, Utilisateur code_utilisateur, String nom_client, Date datecreation, double solde, String adresse, String telephone, String email, String numero_contribuable, String prenom, String registre_commerce, String ville){ boolean bCreation = false; String requete = null; try{ requete = "INSERT INTO client(code_client, nom_client, datecreation, solde, adresse" + "telephone, email, numero_contribuable, prenom, registre_commerce, ville ) VALUES ('" + code_client +"','" + nom_client +"','" + datecreation +"," + solde +"','" + adresse +"','" + telephone +"','" + email +"','" + numero_contribuable +"','" + prenom +"','" + registre_commerce +"','" + ville +"','" + ")"; Statement state = laConnexion.createStatement(); state.executeUpdate(requete); bCreation = true; }catch(SQLException e){ JOptionPane.showMessageDialog(null,"Probleme rencontré :" + e.getMessage(),"Résultat", JOptionPane.ERROR_MESSAGE); } return bCreation; } }
facture.java
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
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115 package entite; import java.sql.Connection; import java.sql.Date; import java.util.ArrayList; import controle.connection.ControleConnexion; public class Article { // PROPRIETES //Proppriétés de base de la classe //================================ private String code_article; private Utilisateur code_utilisateur; private Categorie code_categorie; private String designation; private Date datecreation; private boolean taxable; private double prix_unitaire; // Propriété pour établir la connection avec la BD // ----------------------------------------------- private static Connection laConnexion = ControleConnexion.getConnexion(); // propriété de type ArrayList qui contiendra les enregistrements de la BD // ----------------------------------------------------------------------- private final ArrayList<Article> lesEnreg = new ArrayList<Article>(); // Getters de base // --------------- public String getCode_article() { return code_article; } public Utilisateur getCode_utilisateur() { return code_utilisateur; } public Categorie getCode_categorie() { return code_categorie; } public String getDesignation() { return designation; } public Date getDatecreation() { return datecreation; } public boolean isTaxable() { return taxable; } public double getPrix_unitaire() { return prix_unitaire; } // Getter pour transmettre lArrayList // ----------------------------------- public ArrayList<Article>getLesEnreg(){ return lesEnreg; } // Setters // ------- public void setCode_article(String code_article) { this.code_article = code_article; } public void setCode_utilisateur(Utilisateur code_utilisateur) { this.code_utilisateur = code_utilisateur; } public void setCode_categorie(Categorie code_categorie) { this.code_categorie = code_categorie; } public void setDesignation(String designation) { this.designation = designation; } public void setDatecreation(Date datecreation) { this.datecreation = datecreation; } public void setTaxable(boolean taxable) { this.taxable = taxable; } public void setPrix_unitaire(double prix_unitaire) { this.prix_unitaire = prix_unitaire; } // CONSTRUCTEURS // ------------- // 1er Constructeur public Article(String code_article, Utilisateur code_utilisateur, Categorie code_categorie, String designation, Date datecreation,boolean taxable, double prix_unitaire) { super(); this.code_article = code_article; this.code_utilisateur = code_utilisateur; this.code_categorie = code_categorie; this.designation = designation; this.datecreation = datecreation; this.taxable = taxable; this.prix_unitaire = prix_unitaire; } // 2eme Constructeur public Article(){ lireRecupCRUD(); } // 3eme Constructeur public Article(String code_article){ this.code_article = code_article; } // Lecture et récupération des enregistrements de la BD public void lireRecupCRUD(){ } }
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
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95 package entite; import java.sql.Connection; import java.sql.Date; import java.util.ArrayList; import controle.connection.ControleConnexion; public class Facture { // PROPRIETES // Propriétés de base de classe facture //=================================== private String code_facture; private Utilisateur code_utilisateur; private Client code_client; private Agence code_agence; private Date datecreation; private double montant_total; private String periode_facturation; // Propriété pour établir la connection avec la BD // ----------------------------------------------- private static Connection laConnexion = ControleConnexion.getConnexion(); // propriété de type ArrayList qui contiendra les enregistrements de la BD // ----------------------------------------------------------------------- private final ArrayList<Facture> lesEnreg = new ArrayList<Facture>(); // Getters de base // --------------- public String getCode_facture() { return code_facture; } public Utilisateur getCode_utilisateur() { return code_utilisateur; } public Client getCode_client() { return code_client; } public Agence getCode_agence() { return code_agence; } public Date getDatecreation() { return datecreation; } public double getMontant_total() { return montant_total; } public String getPeriode_facturation() { return periode_facturation; } // Getter pour transmettre lArrayList // ----------------------------------- public ArrayList<Facture> getLesEnreg() { return lesEnreg; } // CONSTRUCTEURS // ------------- // 1er Constructeur public Facture(String code_facture, Utilisateur code_utilisateur, Client code_client, Agence code_agence, Date datecreation, double montant_total, String periode_facturation) { super(); this.code_facture = code_facture; this.code_utilisateur = code_utilisateur; this.code_client = code_client; this.code_agence = code_agence; this.datecreation = datecreation; this.montant_total = montant_total; this.periode_facturation = periode_facturation; } // 2eme Constructeur public Facture() { lireRecupCRUD(); } // 3eme Constructeur pour initier la recherche public Facture(String code_facture){ } // Lecture et récupération des enregistrements de la BD public void lireRecupCRUD(){ } }
groupe.java
Voici ma base de données s'il te plait comment géré de tel sorte que quand il se connecte je puisse savoir quel utilisateur est connecté et lorsque qu'il effectue des traitements comme des CRUD sur les clients les articles ou les factures que je puisse avoir le tracé de ses traitements dans ma base de données.
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
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89 package entite; import java.sql.Connection; import java.sql.Date; import java.util.ArrayList; import controle.connection.ControleConnexion; public class Groupe { // PROPRIETES //Proppriétés de base de la classe //================================ private String code_groupe; private Utilisateur code_utilisateur; private String libelle_groupe; private Date datecreation; // Propriété pour établir la connection avec la BD // ----------------------------------------------- private static Connection laConnexion = ControleConnexion.getConnexion(); // propriété de type ArrayList qui contiendra les enregistrements de la BD // ----------------------------------------------------------------------- private final ArrayList<Utilisateur> lesEnreg = new ArrayList<Utilisateur>(); // Getters //-------------------------- public String getCode_groupe() { return code_groupe; } public Utilisateur getCode_utilisateur() { return code_utilisateur; } public String getLibelle_groupe() { return libelle_groupe; } public Date getDatecreation() { return datecreation; } // Getter pour transmettre l'ArrayList // ----------------------------------- public ArrayList<Utilisateur> getLesEnreg() { return lesEnreg; } // Setters //-------------------- public void setCode_groupe(String code_groupe) { this.code_groupe = code_groupe; } public void setCode_utilisateur(Utilisateur code_utilisateur) { this.code_utilisateur = code_utilisateur; } public void setLibelle_groupe(String libelle_groupe) { this.libelle_groupe = libelle_groupe; } public void setDatecreation(Date datecreation) { this.datecreation = datecreation; } //CONSTRUCTEURS //============================ // 1er Contructeur public Groupe(String code_groupe, Utilisateur code_utilisateur, String libelle_groupe, Date datecreation) { super(); this.code_groupe = code_groupe; this.code_utilisateur = code_utilisateur; this.libelle_groupe = libelle_groupe; this.datecreation = datecreation; } }
Voici les captures de mes fenêtres principales
Merci aux ames qui voudrons bien me donner un coup de main
Partager