Bonjour,
Je suis en train de développer une petite application dans le cadre de ma formation JAVA/JEE et j'ai un petit soucis. Je vais donc faire appel à votre sagacité.
J'ai créé une interface graphique (voir le 1ere image en bas).
Sous le menu "clients", j'ai prévu un sous menu intitulé "Nouveau client" (voir le 2eme image. J'ai créer une BB sous access. Ce que je veux faire, c'est que quand je rentre les données dans les JTextField nom, prénom etc et quand j'appuie sur le bouton "sauvegarder", les valeurs renseignées soient récupérées et insérées dans la base. Je vous envoie les codes que j'ai fait
1. Classe intitulée "AjouterNouveauClient"
2. Classe intitulée "NouveauClient"
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 public class AjouterNouveauClient extends javax.swing.JFrame { NouveauClient nc = new NouveauClient(); private void sauvegarderClientActionPerformed(java.awt.event.ActionEvent evt) { nc.setNom(this.txtNomClient.getText()); nc.setPrenom(this.txtPrenomClient.getText()); nc.setAdresse(this.txtAdresseClient.getText()); nc.setCodePostal(this.txtCodePostalClient.getText()); nc.setCivilite(this.civiliteClient.getActionCommand()); } private void fermerClientActionPerformed(java.awt.event.ActionEvent evt) { dispose(); } /** * @param args the command line arguments * public static void main(String args[]) { java.awt.EventQueue.invokeLater(new Runnable() { public void run() { new AjouterNouveauClient().setVisible(true); } }); }*/ // Variables declaration - do not modify private javax.swing.JLabel adresseClient; private javax.swing.JButton annulerClient; private javax.swing.JComboBox civiliteClient; private javax.swing.JLabel codePostaleClient; private javax.swing.JButton fermerClient; private javax.swing.JLabel jLabel1; private javax.swing.JLabel nomClient; private javax.swing.JLabel prenomClient; private javax.swing.JButton sauvegarderClient; private javax.swing.JTextField txtAdresseClient; private javax.swing.JTextField txtCodePostalClient; private javax.swing.JTextField txtNomClient; private javax.swing.JTextField txtPrenomClient; private javax.swing.JTextField txtVilleClient; private javax.swing.JLabel villeClient; // End of variables declaration }
3. et la classe "BaseDonnees"
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 public class NouveauClient { private String nom; private String prenom; private String adresse; private String codePostal; private String ville; private String civilite; public String getNom() { return nom; } public void setNom(String nom) { this.nom = nom; } public String getPrenom() { return prenom; } public void setPrenom(String prenom) { this.prenom = prenom; } public String getAdresse() { return adresse; } public void setAdresse(String adresse) { this.adresse = adresse; } public String getCodePostal() { return codePostal; } public void setCodePostal(String codePostal) { this.codePostal = codePostal; } public String getVille() { return ville; } public void setVille(String ville) { this.ville = ville; } public String getCivilite() { return civilite; } public void setCivilite(String civilite) { this.civilite = civilite; } @Override public String toString() { return nom +"" + prenom+"" + adresse +""+ codePostal +""+ ville; }
4. Enfin voici la classe qui contient la méthode main
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 private static String url = null; private static String sql =null; private Statement stmt ; private static String pilote = null; public Connection connecter (String url, String pilote) { Connection cn = null; try { url="jdbc:odbc: Driver={Microsoft Access Driver (*.mdb)};DBQ=ventes.mdb"; pilote ="sun.jdbc.odbc.JdbcOdbcDriver"; cn = DriverManager.getConnection(url); } catch (Exception ex) { System.out.println ("La connexion à la base a echoué)"); System.out.println (ex.getMessage()); System.out.println("La connexion à la base a echoué\n"+ "le message d'erreur retourné est :\n" +ex.getMessage()); } return cn; } public void ajouter() { NouveauClient nClient =new NouveauClient(); Connection cn = connecter(url,pilote); if (cn == null) { return; } try { stmt = cn.createStatement(); stmt.executeUpdate ( "INSERT INTO Clients (Civilité ,Nom, Prenom, Adresse,CodePostal, Ville) VALUES ("+ +nClient.getCivilite()+",'" +",'"+ nClient.getNom()+ ",'" +",'"+nClient.getPrenom() + ",'" +",'"+nClient.getAdresse()+ ",'" +",'"+nClient.getCodePostal() + ",'" + ",'"+nClient.getVille()+ "')"); stmt.close(); cn.close(); } catch (Exception e) { e.printStackTrace(); System.out.println(e.getMessage()); } }
J'ai pas mis tout le code par soucis de lisibilité. Le problème, c'est que quand je mets des valeurs dans la fenetre Nouveau Client et que je clique sur le bouton "sauvegarder", rien n'est inséré dans la BDD. Y pas de problème de connexion à la base. J'ai testé en créant une méthode main dans la classe BaseDonnees et en mettant nom, prénom dans VALUES, ça marche. J'ai cherché 3 jours mais j'arrive pas à régler le problème. Aidez moi SVP
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 public class GestionStock extends javax.swing.JFrame { BaseDonnees bdd =new BaseDonnees(); private void clientsNouveauClientActionPerformed(java.awt.event.ActionEvent evt) { AjouterNouveauClient nClient = new AjouterNouveauClient(); nClient.setBounds(80, 20, 500, 500); nClient.setVisible(true); } public static void main(String args[]) { java.awt.EventQueue.invokeLater(new Runnable() { public void run() { new GestionStock().setVisible(true); } }); }
Désolé pour ce long message
Partager