IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JDBC Java Discussion :

Extraction des données depuis des JTextField et les insérer dans une table


Sujet :

JDBC Java

  1. #1
    Nouveau membre du Club
    Inscrit en
    Mai 2010
    Messages
    51
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 51
    Points : 28
    Points
    28
    Par défaut Extraction des données depuis des JTextField et les insérer dans une table
    Bonsoir,
    je tiens tout d'abord à remercier les membres de ce forum pour leur aide.
    le problème que je rencontre maintenant est que je veux insérer dans ma table client de ma base de donnée mobile des valeurs extraites des jtextfield de ma formulaire qui comprends deux champs (login et mot de passe).
    la connexion à la base est parfaite, j'ai crée cette méthode d'insertion:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    public void insert (String requete) throws SQLException
    	{
                    Statement stmnt = dbCon.createStatement();
    		stmnt.executeUpdate(requete);
     
    	}
    dans la classe connexion.
    je fais appel à cette méthode dans mon programme principal:
    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
     
    Connexion con = new Connexion();
    String req ="INSERT INTO client(login, " + "password)VALUES(lg.getText(),pass.getText())";
                try {
                    con.connect();
                    System.out.println("connexion en cours.........");
                    con.insert(req);
                    System.out.println("insertion réussie.........");
                } catch (ClassNotFoundException ex)
                    {
                      System.out.println(ex.getMessage());
                    }
                  catch (SQLException ex)
                    {
                      System.out.println(ex.getMessage());
                    }
    j'obtiens comme résultat:
    run:
    connexion en cours.........
    FUNCTION lg.getText does not exist
    BUILD SUCCESSFUL (total time: 13 seconds)

    lg est un jtextfield ainsi que pass
    voila :
    JTextField lg = new JTextField(10);
    JTextField pass = new JPasswordField(10);
    ces deux variables sont crée dans une sous classe séparer de celle dans laquelle la méthode insert existe (j'espère avoir bien vous expliquer le problème).
    Merci les pro

  2. #2
    En attente de confirmation mail
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Octobre 2010
    Messages
    501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Octobre 2010
    Messages : 501
    Points : 1 060
    Points
    1 060
    Par défaut
    Bonsoir,

    Ça devrait mieux marcher comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    String req ="INSERT INTO client(login, password)VALUES("
        +lg.getText()+","+pass.getText()+")";

  3. #3
    Nouveau membre du Club
    Inscrit en
    Mai 2010
    Messages
    51
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 51
    Points : 28
    Points
    28
    Par défaut
    encore plein d'erreur:
    Exception in thread "AWT-EventQueue-0" java.lang.RuntimeException: Uncompilable source code
    at essai.serveur$saveClt.actionPerformed(serveur.java:149)
    at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
    at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
    at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
    at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
    at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
    at java.awt.Component.processMouseEvent(Component.java:6267)
    at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
    at java.awt.Component.processEvent(Component.java:6032)
    at java.awt.Container.processEvent(Container.java:2041)
    at java.awt.Component.dispatchEventImpl(Component.java:4630)
    at java.awt.Container.dispatchEventImpl(Container.java:2099)
    at java.awt.Component.dispatchEvent(Component.java:4460)
    at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4577)
    at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4238)
    at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168)
    at java.awt.Container.dispatchEventImpl(Container.java:2085)
    at java.awt.Window.dispatchEventImpl(Window.java:2478)
    at java.awt.Component.dispatchEvent(Component.java:4460)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
    BUILD SUCCESSFUL (total time: 24 seconds)

    ainsi qu'il de vienne souligné en rouge:
    String req ="INSERT INTO client(login, password)VALUES("+lg.getText()+","+pass.getText()+")";
    le problème réside dans l'appel à ces deux variables je crois car lorsque je fais "alt+entrée", il m'apparaît:
    cannot find symbol
    symbol: variable lg
    location: class essai.serveur.saveClt

    cannot find symbol
    symbol: variable pass
    location: class essai.serveur.saveClt

  4. #4
    En attente de confirmation mail
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Octobre 2010
    Messages
    501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Octobre 2010
    Messages : 501
    Points : 1 060
    Points
    1 060
    Par défaut
    Bonjour,

    Il faut d'une manière ou d'une autre que le "programme principal" ait accès aux objets lg et pass.

    Comment ces objets lg, pass et la "sous-classe" évoquée sont-ils instanciés ?

  5. #5
    Nouveau membre du Club
    Inscrit en
    Mai 2010
    Messages
    51
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 51
    Points : 28
    Points
    28
    Par défaut
    voila la classe dans laquelle j'ai crée mes objets lg et pass (textfield):
    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
    class addUser_click implements ActionListener{
    
            public void actionPerformed(ActionEvent e) {
                JFrame addUser = new JFrame();
                JPanel panneau = new JPanel();
    
                panneau.setPreferredSize(new Dimension(300, 200));
                panneau.setBackground(Color.LIGHT_GRAY);
    
                addUser.setContentPane(panneau);
                addUser.setSize(300, 200);
                addUser.setVisible(true);
                addUser.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
                addUser.setTitle("Nouveau client");
                addUser.setLocationRelativeTo(null);
    
                JLabel login = new JLabel("Login :");
                JTextField lg = new JTextField(10);
                lg.setMaximumSize(lg.getPreferredSize());
                
                Box box1 = Box.createHorizontalBox();
                box1.add(login);
                box1.add(Box.createHorizontalGlue());
                box1.add(lg);
    
                JLabel pw = new JLabel("PassWord :");
                JTextField pass = new JPasswordField(10);
                pass.setMaximumSize(pass.getPreferredSize());
    
                Box box2 = Box.createHorizontalBox();
                box2.add(pw);
                box2.add(Box.createHorizontalGlue());
                box2.add(pass);
    
                Box box3 = Box.createHorizontalBox();
                JButton saveButton = new JButton("Enregistrer");
                saveButton.addActionListener(new saveClt());
                box3.add(saveButton);
    
                box3.add(Box.createHorizontalStrut(19));
                JButton deleteButton = new JButton("Supprimer");
                deleteButton.addActionListener(new deleteClt());
                box3.add(deleteButton);
                
    
    
                Box vBox = Box.createVerticalBox();
                vBox.add(box1);
                vBox.add(Box.createVerticalStrut(19));
                vBox.add(box2);
                vBox.add(Box.createVerticalStrut(39));
                vBox.add(box3);
    
                panneau.add(vBox,BorderLayout.CENTER);
    
                
    
            }
        }
    et voila la classe dans laquelle je fais appel à ces deux objets:
    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
    public void actionPerformed(ActionEvent e) {
    Connexion con = new Connexion();
    String req ="INSERT INTO client(login,password)VALUES("+lg.getText()+","+pass.getText()+")";
                try {
                    con.connect();
                    System.out.println("connexion en cours.........");
                    con.insert(req);
                    System.out.println("insertion réussie.........");
                } catch (ClassNotFoundException ex)
                    {
                      System.out.println(ex.getMessage());
                    }
                  catch (SQLException ex)
                    {
                      System.out.println(ex.getMessage());
                    }
                    
    
            }

  6. #6
    Nouveau membre du Club
    Inscrit en
    Mai 2010
    Messages
    51
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 51
    Points : 28
    Points
    28
    Par défaut
    Bonsoir, j'ai réussi à résoudre le problème des objets lg et pass mais le nouveau problème que je rencontre et que lorsque je clique sur le bouton enregistrer pour que les valeurs de ces deux objets prennent leur places dans la table client de ma base qui a comme champs login et motdepasse, cette erreur me parait:
    connexion en cours.........
    Unknown column 'user' in 'field list'

    la valeur user c'est la valeur que je met dans textfield du login.
    veuillez me donner un coup de main et je serais très reconnaissante

  7. #7
    Membre éprouvé
    Avatar de LinkinSelim
    Profil pro
    Enseignant Chercheur
    Inscrit en
    Mars 2006
    Messages
    365
    Détails du profil
    Informations personnelles :
    Localisation : Algérie

    Informations professionnelles :
    Activité : Enseignant Chercheur

    Informations forums :
    Inscription : Mars 2006
    Messages : 365
    Points : 1 034
    Points
    1 034
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String req ="INSERT INTO client(login,password)VALUES("+lg.getText()+","+pass.getText()+")";

    Je pense que tu as une erreur dans ta syntaxe, tu as oublié de placer un espace entre ...,password) et VALUES(.

    Bon courage

  8. #8
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2010
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2010
    Messages : 53
    Points : 64
    Points
    64
    Par défaut
    salut,

    je pense que l'erreur est dans ta requête essaie celle-ci.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String req ="INSERT INTO client(login,password)VALUES('"+lg.getText()+"','"+pass.getText()+"')";
    Tu as omis de mettre les valeurs entre les simples cotes

    NB: Lorsque tu saisis le login ou le mot de passe évite d'y insérer les simples cotes cela te générera une erreur

  9. #9
    Nouveau membre du Club
    Inscrit en
    Mai 2010
    Messages
    51
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 51
    Points : 28
    Points
    28
    Par défaut
    je vous remercie LinkinSelim et pain-sama.
    vos réponses ont résolu le problème(combinaison de l'espace et les simples kotes )
    encore un grand merci

  10. #10
    Membre éprouvé
    Avatar de LinkinSelim
    Profil pro
    Enseignant Chercheur
    Inscrit en
    Mars 2006
    Messages
    365
    Détails du profil
    Informations personnelles :
    Localisation : Algérie

    Informations professionnelles :
    Activité : Enseignant Chercheur

    Informations forums :
    Inscription : Mars 2006
    Messages : 365
    Points : 1 034
    Points
    1 034
    Par défaut
    Content pour toi
    T'as qu'à cliquer sur résolu

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Récuperer les données d'un fichier txt pour les insérer dans une Table
    Par sandokhane dans le forum Bases de données
    Réponses: 47
    Dernier message: 31/05/2014, 15h10
  2. Réponses: 1
    Dernier message: 25/11/2012, 14h11
  3. Réponses: 0
    Dernier message: 10/08/2008, 19h05
  4. Réponses: 1
    Dernier message: 31/01/2007, 11h59
  5. Réponses: 3
    Dernier message: 23/04/2006, 12h14

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo