Problème de jointure dans le insert into avec code java [Résolu]

Messages postés
34
Date d'inscription
lundi 25 avril 2011
Statut
Membre
Dernière intervention
18 juin 2013
- - Dernière réponse : pink90
Messages postés
34
Date d'inscription
lundi 25 avril 2011
Statut
Membre
Dernière intervention
18 juin 2013
- 19 mai 2011 à 10:06
Bonjour !
Pour vous mettre dans la situation correctement je vais essayez d'expliquer mon problème de A à Z et j'espère que vous pouvez me trouver la solution

j'ai une BD qui contient 4 tables (avec Access) :

Utilisateur(Id_utilisateur,nom,Id_dir,type)
Fix(Id_fix,NumFix,Id_utilisateur)
GSM(Id_GSM,NumGSM,type_abonnement,Id_utilisateur)
Direction(Id_dir,Nom_dir)

j'ai réalisé une interface graphique pour ma base de données avec java (NetBeans) et maintenant j'essaye de lier ma base avec celle ci
j'ai réussi à établir une connexion entre base et interface (jdbc/odbc)

j'ai un formulaire pour ajouter un nouveau utilisateur:



le problème : je voulais faire un INSERT INTO et une jointure au même temps des quatre tableaux pour ajouter à la fois l'utilisateur,son numéro de tel,son id de direction,... mais je sais pas comment je peux joindre les tableaux et insérer des lignes au même temps , ils m'ont proposé de changer l'architecture de ma BD et de ne laisser qu'une seule table mais je pense que ça va violer la première forme normale celle de l'atomicité des attributs en sachant qu'un utilisateur peut avoir 0 ou plusieurs numéros de fixe ou de GSM ,mais un utilisateur appartient à une et une seule direction



est ce que vous pouvez me proposer une solution pour que mon formulaire fonctionne correctement SVP ?

Merci et Bonne journée
Afficher la suite 

3 réponses

Meilleure réponse
Messages postés
6413
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
17 mai 2018
246
3
Merci
Tu as mille fois raison de ne pas faire une seule table, ce serait vraiment bête de s'être cassé la tête à essayer de proposer un modèle de base de données qui tient la route pour tout détruire à la première difficulté.

En fait, tu ne peux pas faire de "jointure" pour l'insertion, il faut que tu exécutes 4 requêtes insert, mais, tu peux le faire en une fois :
connexion.ouvrir();
String requete = "INSERT INTO Fix values(...);
                  INSERT INTO Direction values(...);
                  INSERT INTO GSM values(...);
                  COMMIT;";
connexion.executeUpdate(requete);
connexion.fermer();



En plaçant le commit à la fin de la requête, tu t'assures que si tu as un problème à la troisième ligne, les données ne sont pas insérées dans les tables

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 200 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_Julien39
3
Merci
Et à la limite si jamais tu as une erreur lors de l'exécution de ta requête, tu peux notifier l'utilisateur avec une petite pop-up (JOptionPane.shoMessageDialog() par exemple).

Juste un détail tout petit, je mettrais plutôt ta police en vert qu'en rouge pour ton bouton "Ajouter". Le rouge fait plus penser aux annulations et aux erreurs.

Bonne continuation :D

--
Pylouq (actuellement jongleur de clavier AZERTY et de clavier QWERTZ)

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 200 internautes nous ont dit merci ce mois-ci

Commenter la réponse de Utilisateur anonyme
Messages postés
34
Date d'inscription
lundi 25 avril 2011
Statut
Membre
Dernière intervention
18 juin 2013
0
Merci
Merci
Commenter la réponse de pink90