Partage
  • Partager sur Facebook
  • Partager sur Twitter

Liasion bdd mySQL

    18 décembre 2014 à 14:47:00

    Bonjour,

    J'ai suivi le cours pour faire des boîtes de dialogues sur ce site, mais j'ai ensuite décidé de le modifier pour un projet personnel, alors venons en au fait : Je demande à l'utilisateur de l'application de rentrer des informations grâce a des JTextField, JRadioButton et JComboBox et j'aimerais pouvoir récupérer ces informations pour une base de données.

    Par exemple : Je demande à une personne de rentrer des informations pour recherche une salle d'art martiaux pour un tournoi, je lui demande par mon interface graphique en JTextField le nom du dirigeant du club et la date pour le tournoi, en JComboBox l'art martial pratiqué et en JRadioButton le nombre de combattants disponibles dans le club  environ (par tranche donc).

    Et j'aimerais récupérer ces informations pour les insérées dans ma base de données mySQL.

    Ca pourrait vraiment me faire avancé et merci d'avoir pris le temps de me lire, j'espère avoir été clair.

    -
    Edité par VincentBlot 18 décembre 2014 à 14:48:24

    • Partager sur Facebook
    • Partager sur Twitter
      18 décembre 2014 à 15:23:45

      je vois pas exectement le problème mais :

       tu peux récuperer tes données via l'interface graphique , apres tu les stock et tu les manipule comme tu veux . voir coté driver JDBC pour inserer les données dans ta BD , aussi tu peux les mettre à jour . pour la recherche, il suffit de récuperer les donnée apres c à toi de choisir comment les afficher à l'utilisateur .

      voila pour SGBD postgresql: http://openclassrooms.com/courses/apprenez-a-programmer-en-java/jdbc-la-porte-d-acces-aux-bases-de-donnees

      pour mysql :http://blog.paumard.org/cours/jdbc/chap02-apercu-exemple.html

      il faut telecharger .jar pour le type de ta base de données .

      • Partager sur Facebook
      • Partager sur Twitter
      Le succès n’est pas la clé du bonheur. Le bonheur est la clé du succès. Si vous aimez ce que vous faites, vous réussirez. Albert Schweitzer
        18 décembre 2014 à 15:32:36

        Est-ce que tu sais récupérer les valeurs rentrées via l'interface graphique?
        • Partager sur Facebook
        • Partager sur Twitter
          18 décembre 2014 à 15:57:19

          Je voudrais plus précisément insérer mes données dans une base mySQL sur un serveur exterieur avec phpMyAdmin sur wampserver

          -
          Edité par VincentBlot 18 décembre 2014 à 16:02:02

          • Partager sur Facebook
          • Partager sur Twitter
            18 décembre 2014 à 15:59:59

            VincentBlot a écrit:

            c'est pas ca? Désolé je débute un peu.


            On ne peut pas le savoir à ta place, on n'a pas vu ton code et tu n'as pas expliqué clairement la nature de ton problème
            • Partager sur Facebook
            • Partager sur Twitter
              18 décembre 2014 à 16:03:18

              public class ZDialog2 extends JDialog
              {
                  private String d, e, f;
                  private ZDialog2Info zInfo2 = new ZDialog2Info();
                  private boolean sendData2;
                  private JLabel nomLabel, artLabel, codepLabel, villeLabel, capmLabel,nbrsm, icon;
                  private JRadioButton tranche1, tranche2, tranche3, tranche4, tranche11, tranche22, tranche33, tranche44;
                  private JComboBox art;
                  private JTextField nom,codep, ville;
                  public ZDialog2(JFrame parent, String title, boolean modal)
                  {
                  super(parent, title, modal);
                  this.setSize(550, 350);
                  this.setLocationRelativeTo(null);
                  this.setResizable(true);
                  this.setDefaultCloseOperation(JDialog.DO_NOTHING_ON_CLOSE);
                  this.initComponent2();
                  }
                  
                  public ZDialog2Info showZDialog2()
                  {
                      this.sendData2 = false;
                      this.setVisible(true);      
                      return this.zInfo2;
                  }private void initComponent2()
                {
                  //Icône
                  icon = new JLabel(new ImageIcon("C:/Users/Vincent/Pictures/Icone-aide.png"));
                  JPanel panIcon = new JPanel();
                  panIcon.setBackground(Color.white);
                  panIcon.setLayout(new BorderLayout());
                  panIcon.add(icon);
                  
                  //Le nom
                  JPanel panNom = new JPanel();
                  panNom.setBackground(Color.white);
                  panNom.setPreferredSize(new Dimension(220, 60));
                  nom = new JTextField();
                  nom.setPreferredSize(new Dimension(100, 25));
                  panNom.setBorder(BorderFactory.createTitledBorder("Nom de la salle"));
                  nomLabel = new JLabel("Saisir un nom :");
                  panNom.add(nomLabel);
                  panNom.add(nom);
                  
                  //L'art martial
                  JPanel panArt = new JPanel();
                  panArt.setBackground(Color.white);
                  panArt.setPreferredSize(new Dimension(220, 60));
                  panArt.setBorder(BorderFactory.createTitledBorder("Art martial"));
                  art = new JComboBox();
                  art.addItem("Aïkido");
                  art.addItem("Boxe anglaise");
                  art.addItem("Boxe française");
                  art.addItem("Boxe thaïlandaise");
                  art.addItem("Capoeira");
                  art.addItem("Judo");
                  art.addItem("Karaté");
                  art.addItem("Kick-Boxing");
                  art.addItem("Krav-Maga");
                  art.addItem("Kung-Fu");
                  art.addItem("Lutte");
                  art.addItem("Muay thaï");
                  art.addItem("Savate");
                  art.addItem("Taekwondo");
                  art.addItem("Viet vu dao");
                  art.addItem("Wing Chun");
                  artLabel = new JLabel("Art : ");
                  panArt.add(artLabel);
                  panArt.add(art);
                  
                  //Nombre de combattants 
                  JPanel panCapm = new JPanel();
                  panCapm.setBackground(Color.white);
                  panCapm.setBorder(BorderFactory.createTitledBorder("Nombre de combattants maximum"));
                  panCapm.setPreferredSize(new Dimension(440, 60));
                  tranche1 = new JRadioButton("15 - 25 ");
                  tranche1.setSelected(true);
                  tranche2 = new JRadioButton("26 - 35 ");
                  tranche3 = new JRadioButton("36 - 50 ");
                  tranche4 = new JRadioButton("+ de 50 ");
                  ButtonGroup bg = new ButtonGroup();
                  bg.add(tranche1);
                  bg.add(tranche2);
                  bg.add(tranche3);
                  bg.add(tranche4);
                  panCapm.add(tranche1);
                  panCapm.add(tranche2);
                  panCapm.add(tranche3);
                  panCapm.add(tranche4);
                  
                  //Nombre de sports max 
                  JPanel panNbrsm = new JPanel();
                  panNbrsm.setBackground(Color.white);
                  panNbrsm.setBorder(BorderFactory.createTitledBorder("Nombre de sports maximum"));
                  panNbrsm.setPreferredSize(new Dimension(440, 60));
                  tranche11 = new JRadioButton("1 - 5 ");
                  tranche11.setSelected(true);
                  tranche22 = new JRadioButton("5 - 10 ");
                  tranche33 = new JRadioButton("10 - 15 ");
                  tranche44 = new JRadioButton("+ de 15 ");
                  ButtonGroup bg2 = new ButtonGroup();
                  bg2.add(tranche11);
                  bg2.add(tranche22);
                  bg2.add(tranche33);
                  bg2.add(tranche44);
                  panNbrsm.add(tranche11);
                  panNbrsm.add(tranche22);
                  panNbrsm.add(tranche33);
                  panNbrsm.add(tranche44);
                  
                  //Code Postal
                  JPanel panCodep = new JPanel();
                  panCodep.setBackground(Color.white);
                  panCodep.setPreferredSize(new Dimension(220, 60));
                  panCodep.setBorder(BorderFactory.createTitledBorder("Departement :"));
                  codepLabel = new JLabel(" Code postal : ");
                  codep = new JTextField(" ");
                  codep.setPreferredSize(new Dimension(90, 25));
                  panCodep.add(codepLabel);
                  panCodep.add(codep);
                  
                  //La ville d'accueil
                  JPanel panVille = new JPanel();
                  panVille.setBackground(Color.white);
                  panVille.setPreferredSize(new Dimension(220, 60));
                  panVille.setBorder(BorderFactory.createTitledBorder("Ville"));
                  villeLabel = new JLabel(" Location : ");
                  ville = new JTextField(" ");
                  ville.setPreferredSize(new Dimension(90, 25));
                  panVille.add(villeLabel);
                  panVille.add(ville);
                 
                  JPanel content = new JPanel();
                  content.setBackground(Color.white);
                  content.add(panNom);
                  content.add(panVille);
                  content.add(panCodep);
                  content.add(panArt);
                  content.add(panCapm);
                  content.add(panNbrsm);
                  
                 
                  JPanel control = new JPanel();
                  JButton okBouton = new JButton("OK");
                  
                  okBouton.addActionListener(new ActionListener(
                  ){
                    public void actionPerformed(ActionEvent arg0) 
                    {
                      d=nom.getText();
                      e=codep.getText();
                      f=ville.getText();
                      zInfo2 = new ZDialog2Info(nom.getText(),ville.getText(),codep.getText(), (String)art.getSelectedItem(), getCapm(), getNbrsm() );
                      setVisible(false);
                    }
                    public String getNbrsm()
                    {
                      return (tranche11.isSelected()) ? tranche11.getText() : 
                             (tranche22.isSelected()) ? tranche22.getText() : 
                             (tranche33.isSelected()) ? tranche33.getText() : 
                             (tranche44.isSelected()) ? tranche44.getText() : 
                              tranche11.getText();  
                    }
                    
                   public String getCapm()
                   {
                       return (tranche1.isSelected()) ? tranche1.getText() : 
                             (tranche2.isSelected()) ? tranche2.getText() : 
                             (tranche3.isSelected()) ? tranche3.getText() : 
                             (tranche4.isSelected()) ? tranche4.getText() : 
                              tranche1.getText(); 
                   }
                        
                  });
                  JButton cancelBouton = new JButton("Annuler");
                  cancelBouton.addActionListener(new ActionListener()
                  {
                    public void actionPerformed(ActionEvent arg0) 
                    {
                      setVisible(false);
                    }      
                  });
                  control.add(okBouton);
                  control.add(cancelBouton);
                  this.getContentPane().add(panIcon, BorderLayout.WEST);
                  this.getContentPane().add(content, BorderLayout.CENTER);
                  this.getContentPane().add(control, BorderLayout.SOUTH);
                }  
                  
              }
              • Partager sur Facebook
              • Partager sur Twitter
                18 décembre 2014 à 16:08:40

                C'est vraiment pas cool d'éditer ton message et de le changer complètement. Du coup ma précédente intervention n'a plus aucune utilité.

                VincentBlot a écrit:

                Je voudrais plus précisément insérer mes données dans une base mySQL sur un serveur exterieur avec phpMyAdmin sur wampserver

                -
                Edité par VincentBlot il y a 3 minutes

                A quel niveau coinces-tu? 

                Qu'est ce qui ne va pas? (Récupération des valeurs de l'interface graphique, l'insertion en base, une exception?)

                Qu'as-tu déjà fait?

                • Partager sur Facebook
                • Partager sur Twitter
                  18 décembre 2014 à 16:25:36

                  Je coince au niveau de la connexion a la bdd, j'ai déjà fais toutes mes interfaces graphiques mais je ne sais vraiment pas comment faire pour que les informations que je rentre dans mes JComboBox, JTextField et JRadioButton s'affichent dans ma bdd (avec phpMyAdmin et Wampserveur)

                  • Partager sur Facebook
                  • Partager sur Twitter
                    18 décembre 2014 à 16:28:21

                    Tu as déjà lu ce chapitre du cours de Java? http://openclassrooms.com/courses/apprenez-a-programmer-en-java/jdbc-la-porte-d-acces-aux-bases-de-donnees
                    • Partager sur Facebook
                    • Partager sur Twitter
                      18 décembre 2014 à 16:36:59

                      Oui je l'ai déjà lu mais je n'utilise pas PostgreSQL, et puis à mon avis (peut être faux) il faut que je modifie mon code pour tout récupérer dans une autre Classe pour ensuite avoir directement les informations de toutes mes IG dans une seule classe.
                      • Partager sur Facebook
                      • Partager sur Twitter
                        18 décembre 2014 à 16:41:15

                        Que tu utilises PostgreSQL ou MySQL, le code sera le même puisqu'on passe par la couche JDBC.

                        Donc inspire toi du tuto. Commence par créer la connexion.

                        • Partager sur Facebook
                        • Partager sur Twitter
                          18 décembre 2014 à 17:04:20

                          le code c le meme , mais il faut modifier l'URL de connexion ainsi le driver
                          • Partager sur Facebook
                          • Partager sur Twitter
                          Le succès n’est pas la clé du bonheur. Le bonheur est la clé du succès. Si vous aimez ce que vous faites, vous réussirez. Albert Schweitzer
                            19 décembre 2014 à 13:46:38

                            Voici ce que j'ai changé a mon code que je vous ai transmis plus haut, et la nouvelle classe que j'ai créer :

                            okBouton.addActionListener(new ActionListener(
                                ){
                                  public void actionPerformed(ActionEvent arg0) 
                                  { 
                                    a=ad.getText();
                                    b=ville.getText();
                                    c=codep.getText();
                                    Connect.toto(a, b, c);
                                    zInfo3 = new ZDialog3Info(ad.getText(),ville.getText(),(String)dep.getSelectedItem(), codep.getText(), (String)art.getSelectedItem(), getCapm() );
                                    setVisible(false);
                                  }
                            
                            Et la nouvelle classe :
                            
                            import java.sql.*;
                            import java.io.* ;
                            
                            //*import com.mysql.jdbc.driver.* ;*//
                            
                             public  class Connect {
                            
                                public  static  void main (String[] args) {
                                   try {
                                     Class c = Class.forName("com.mysql.jdbc.Driver") ;
                                     Driver pilote = (Driver)c.newInstance() ;
                                     DriverManager.registerDriver(pilote);
                                     String protocole =  "jdbc:mysql:" ;
                                     String ip =  "localhost" ;  
                                     String port =  "" ;
                                     String nomBase =  "ArtMartial" ;  
                                     String conString = protocole +  "//" + ip +  ":" + port +  "/" + nomBase ;
                                     String nomConnexion =  "user" ;  
                                     String motDePasse =  "passwd" ;
                                      // Connexion
                                     Connection con = DriverManager.getConnection(
                                        conString, nomConnexion, motDePasse) ;
                            
                                     String sql =  "select * from Marins" ;
                                     Statement smt = con.createStatement() ;
                                     ResultSet rs = smt.executeQuery(sql) ;
                                      while (rs.next()) {
                                        System.out.println(rs.getString("nom")) ;
                                     }
                                  }  catch (Exception e) {
                            
                                  }
                               }
                                public static boolean  toto(String a, String b, String c){
                                  
                                    
                                    return false;
                                }
                            }



                            • Partager sur Facebook
                            • Partager sur Twitter
                              19 décembre 2014 à 15:04:35

                              normalement ça devrait marcher ! tu as ajouté le .jar du driver jdbc (com.mysql.jdbc_x.x.jar) au projet ?
                              • Partager sur Facebook
                              • Partager sur Twitter
                              Le succès n’est pas la clé du bonheur. Le bonheur est la clé du succès. Si vous aimez ce que vous faites, vous réussirez. Albert Schweitzer
                                19 décembre 2014 à 15:08:03

                                Jamais de catch vide!!!!

                                catch (Exception e) {
                                }

                                Mets au minimum un ex.printStackTrace(); ou mieux, propage l'exception

                                • Partager sur Facebook
                                • Partager sur Twitter
                                  19 décembre 2014 à 15:19:49

                                  maryamma : je suis pas sur de l'avoir fais, quand j'ecris import com.mysql.jdbc.driver.* ; mon programme est pas d'accord avec le com

                                  max-om-93 : Pour ex.printStackTrace(); il connait pas le ex et je ne sais pas propager l'exception.

                                  Ensuite pour lier a ma base de donner il faut que j'ajoute des requêtes SQL dans mon programme non?

                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                    19 décembre 2014 à 15:31:31

                                    Avant qu'on continue à t'aider, je veux que tu ailles lire cette partie du cours: http://openclassrooms.com/courses/apprenez-a-programmer-en-java/les-exceptions

                                    C'est la base, sans ça tu ne pourras jamais réaliser quelque chose de potable.

                                    • Partager sur Facebook
                                    • Partager sur Twitter
                                      19 décembre 2014 à 15:39:24

                                      1- tu n'a pas specifier le port qui est 3308

                                      2- tu doit traiter les exception en mettant au moins :

                                      catch (Exception e) {
                                       System.out.println(e.getMessage());
                                            }


                                      pour voir c quoi  l'erreur .

                                      ton code ça marche pour moi en ajoutant le port.

                                      • Partager sur Facebook
                                      • Partager sur Twitter
                                      Le succès n’est pas la clé du bonheur. Le bonheur est la clé du succès. Si vous aimez ce que vous faites, vous réussirez. Albert Schweitzer
                                        19 décembre 2014 à 16:09:13

                                        Oui mais  a l'endroit :

                                        public static boolean  toto(String a, String b, String c)
                                            {        
                                                return false;
                                            }
                                        

                                        Je ne suis pas censé rentrer des requêtes SQL à l'intérieur pour préciser ou je veux envoyer les données ?

                                        Et j'ai lu le chapitre sur les exceptions

                                        • Partager sur Facebook
                                        • Partager sur Twitter

                                        Liasion bdd mySQL

                                        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                                        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                                        • Editeur
                                        • Markdown