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 :

récupération automatique de IdMembre


Sujet :

JDBC Java

  1. #1
    Membre du Club
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Juillet 2015
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Mali

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2015
    Messages : 53
    Points : 53
    Points
    53
    Par défaut récupération automatique de IdMembre
    Bonsoir,

    Pour la création de mon compte, je voudrais faire de sorte que l'IdClient ne soit pas saisi, mais qu'il soit automatiquement récupéré depuis la base de données. Je voudrais que l'IdMembres soit directement le contenu de son champ et je sais pas comment m'y prendre.
    NB. Dans la base de données, j'ai auto incrémenté l'IdMembre
    Merci pour votre aide


    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
     
     String NumCompte = jTnum.getText();
            String TypeCompte = (String) jComboBox1.getSelectedItem();
            int solde = Integer.parseInt(jTtype.getText());
            String Id = jTid.getText();
            String requete = "INSERT INTO comptes (NumCompte, TypeCompte,Solde,numcli)VALUES (?,?,?,?,)";
     
     
            try(PreparedStatement pk = conn.prepareStatement(requete))
                    {
                        pk.setInt(1, solde);
                        pk.setString(2, NumCompte);
                        pk.setString(3, TypeCompte);
     
                        pk.setString(4, Id);
     
                        int ajouteeLigne = pk.executeUpdate();
                        JOptionPane.showMessageDialog(null, "Ouverture de  compte reussie");
                    }
            catch(SQLException ex)
            {
                ex.printStackTrace();
            }
     
        }
    Nom : Capture d'écran 2015-07-22 14.41.01.png
Affichages : 202
Taille : 105,6 Ko

  2. #2
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Salut,

    Ce n'est pas très clair : c'est IdClient ou IdMembre (IdMembres?) le champ que tu veux récupérer ?

    Et à partir de quoi tu voudrais le récupérer ? Comment détermine-t-on de quel client (ou membre) on voudrait récupérer l'id ?
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  3. #3
    Membre du Club
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Juillet 2015
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Mali

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2015
    Messages : 53
    Points : 53
    Points
    53
    Par défaut je vois
    au faite l'IdClient dans la base de données est une foreign key dans la table comptes qui fait référence à l'IdMembre dans la table membre comme sur l'image dans la table compte on a (#NumCompte, TypeCompte, Solde, Idclient) et dans l table membres on a (#Idmembre, prenom, nom,dateNaissance, LieuNaisance, Sexe, Adesse, Profession) et j'aimerais qu'une fois le client enregistré et qu'on clique sur creer compte que dans le champ IdClient de limage reccupère automatiquement l'IdMembres du client dans la base de donnée
    donc c'est l'Idmembre qui doit être reccupérer et mis dans le champ IdClient pour dire par exemple après la creation de l'Idmembre = 3 et quand clique sur creer compte que dans le champ IdClient on reccupere le 3 du membre

  4. #4
    Membre chevronné Avatar de jeffray03
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2008
    Messages
    1 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 501
    Points : 2 120
    Points
    2 120
    Par défaut
    salut,
    pour cela des que tu fais:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     Insert into membre(xxxxx) values(?,?,?,?,?,?);
     //apres le commit, tu recuperes le IdMembre que tu viens de sauvegarder 
     
      idMembre = findIdMembreByName(nom_du_membre);
    et la methode de recherche
    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
     
      public Long findIdMembreByName(String nom_du_membre)
      {
        String idMembre = null;
        String requete= "Select idmembre from membre where nom = ?";
        try {
        PreparedStatement ps = conn.prepareStatement(requete);
        ps.setString(1, nom_du_membre);
        ResultSet rs = ps.executeQuery();
        while(rs.next())
       {
          idMembre = rs.getString("idmembre");
        }
        } catch (SQLException e) {
     
    			System.out.println(e.getMessage());
     
    		} finally {
     
    			if (ps != null) {
    				ps.close();
    			}
     
    			if (conn != null) {
    				conn.close();
    			}
     
    		}
        return idMembre;
      }
    eric

  5. #5
    Membre du Club
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Juillet 2015
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Mali

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2015
    Messages : 53
    Points : 53
    Points
    53
    Par défaut salut
    je suis un peu confuse je le met ou exactement dans mon code? parce que l'enregistrement du membres est bon et grace à vous maintenant c'est le coté compte le problème comment le mettre dans le code ou exactement s'il vous plait?
    voici le codes du formulaire dans lequel des 2 codes je dis mettre votre code:
    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
     
     String prenom = jTprenom.getText();
             String nom = jTnom.getText();
            String adresse = jTadresse.getText();
             java.util.Date date = jDate.getDate();
            String lieu = jTlieu.getText();
            String sexe = jComboBox1.getSelectedItem().toString();
            String profession = jTprofession.getText();
     
            String requete = "INSERT INTO membres (Prenom, Nom, Adresse,Date, Lieu, Sexe, Profession)VALUES (?,?,?,?,?,?,?)";
     
            try (PreparedStatement ps = conn.prepareStatement(requete)){
                ps.setString(1, prenom);
                ps.setString(2, nom);
                ps.setString(3, adresse);
                //Et pour la date...
                ps.setDate(4, new java.sql.Date(date.getTime()));
                ps.setString(5, lieu);
                ps.setString(6, sexe);
                ps.setString(7, profession);
     
                //Exécution de la requête 
                int ligneAjoutee = ps.executeUpdate();
                JOptionPane.showMessageDialog(null, "Enregistrement effectué avec succès");
     
            } catch (SQLException ex) {
                ex.printStackTrace();
            }
        }

  6. #6
    Membre chevronné Avatar de jeffray03
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2008
    Messages
    1 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 501
    Points : 2 120
    Points
    2 120
    Par défaut
    salut,
    justement ici:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    int ligneAjoutee = ps.executeUpdate();
    idMembre = findIdMembreByName(nom);
    jTIdMembre.setText(idMembre);
                JOptionPane.showMessageDialog(null, "Enregistrement effectué avec succès");
    eric

  7. #7
    Membre du Club
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Juillet 2015
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Mali

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2015
    Messages : 53
    Points : 53
    Points
    53
    Par défaut
    Une fois encore, il y a des erreurs dans le code du formulaire. Il n'y a pas de "jTIdmembre" et pourquoi ne pas mettre le code dans le code de compte ? J'ai donné 2 codes : en haut, c'est celui du code et, en bas, c'est celui du formulaire, mais l'Idmembre est directement incrementé. L'objectif est que dans la figure 1, il y'ait IdClient. Je voudrais l'affecter l'IdMembres du client ( Idclient=Idmembre).

  8. #8
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Salut,

    Par jTIdMembre, je pense que @jeffray03 voulait désigner le champ dans lequel tu veux mettre l'idMembre récupéré, quelque soit le nom que tu aies pu lui donner, et que personne ne peut deviner. Il de suffit d'adapter le code.

    A noter, par ailleurs, qu'à la place de findIdMembreByName(), on peut utiliser la méthode getGeneratedKeys() de PreparedStatement pour récupérer l'id de membre.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  9. #9
    Membre du Club
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Juillet 2015
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Mali

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2015
    Messages : 53
    Points : 53
    Points
    53
    Par défaut salut
    je vous remercie beaucoup quand même mais moi je suis complètement perdu mais merci infiniment

  10. #10
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Je ne sais pas ce que tu veux faire avec idMembre (ce n'est pas clairement indiqué), alors je vais remettre ton code complet :

    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
     
    String prenom = jTprenom.getText();
    String nom = jTnom.getText();
    String adresse = jTadresse.getText();
    java.util.Date date = jDate.getDate();
    String lieu = jTlieu.getText();
    String sexe = jComboBox1.getSelectedItem().toString();
    String profession = jTprofession.getText();
     
    String requete = "INSERT INTO membres (Prenom, Nom, Adresse,Date, Lieu, Sexe, Profession)VALUES (?,?,?,?,?,?,?)";
     
    try (PreparedStatement ps = conn.prepareStatement(requete)){
       ps.setString(1, prenom);
       ps.setString(2, nom);
       ps.setString(3, adresse);
       //Et pour la date...
       ps.setDate(4, new java.sql.Date(date.getTime()));
       ps.setString(5, lieu);
       ps.setString(6, sexe);
       ps.setString(7, profession);
     
      //Exécution de la requête 
      int ligneAjoutee = ps.executeUpdate();
     
      if ( ligneAjoutee==1 ) {
          ResultSet keys = ps.getGeneratedKeys();
          keys.next(); // on a ajouté une ligne, il y a normalement forcément un enregistrement 
          int idMembre = keys.getInt("idmembre");  // on récupère l'id généré automatiquement, après tu en fais ce que tu en veux...
       }
     
      JOptionPane.showMessageDialog(null, "Enregistrement effectué avec succès.");
     
    } catch (SQLException ex) {
       ex.printStackTrace();
    }
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  11. #11
    Membre du Club
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Juillet 2015
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Mali

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2015
    Messages : 53
    Points : 53
    Points
    53
    Par défaut salut
    sur l'image en haut il y'a 2 méthodes ajouter membres et créer compte.
    les deux code marche très bien.
    mais j'aimerai que dans créer compte (il y'a un champ IdClient ) qui doit prendre l'identifiant du membre que je viens d'ajouter au lieu de le saisir j'aimerais qu'il soit automatique et je n'aurai qu'a informer les autres champ

  12. #12
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Et bien je t'ai montré comment récupérer l'idmembre de l'enregistrement de membre au moment de la création : tu n'as plus qu'à le stocker dans une variable à laquelle tu as accès dans ta fenêtre de création de compte et de l'utiliser dans l'insertion de compte.

    Il est impossible de deviner exactement la dynamique de ton application à partir du peu de code que tu donnes et du screenshot. C'est toi qui sait comment elle est censée fonctionner et donc à toi d'assembler les morceaux de code pour ça fonctionne comme tu le voudrais. On ne peut te guider que sur les fonctionnalités unitaires et c'est à toi de les relier ensemble. On peut te guider sur les différentes manières : retour de méthode, évenement, injection... mais pas plus.

    Tout ce que je vois, c'est qu'il y a un formulaire de création de membre avec un bouton "ajouter" et un bouton "créer compte" : si on saisit des valeurs dans les champs de ce formulaire, et qu'on clique sur "ajouter", que se passe-t-il ? Le formulaire se ferme-t-il ? Ou reste-t-il ouvert et le bouton "ajouter" se grise alors ? Auquel cas, il suffirait de passer lors du clic sur ajouter compte la valeur récupérée par le moyen que je t'ai indiqué. Ou peut-être c'est le clic sur "créer compte qui fait l'insert du membre et qui enchaine sur le formulaire de création de compte, auquel cas tu peux procéder exactement de la même manière.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  13. #13
    Membre du Club
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Juillet 2015
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Mali

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2015
    Messages : 53
    Points : 53
    Points
    53
    Par défaut salut
    ok merci beaucoup je vois très bien maintenant merci j'avais pas bien compris le code que vous m'avez envoyer merci beaucoup

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 15/12/2014, 10h47
  2. Réponses: 5
    Dernier message: 08/07/2014, 13h49
  3. [outlook 2003]réponse automatique accusé réception
    Par pinocchio dans le forum Outlook
    Réponses: 2
    Dernier message: 13/01/2006, 21h50
  4. Re-dimensionnement automatique de composants
    Par ludo_7 dans le forum C++Builder
    Réponses: 10
    Dernier message: 16/05/2002, 16h35

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