Problème de jointure dans le insert into avec code java

Résolu
pink90 Messages postés 34 Date d'inscription lundi 25 avril 2011 Statut Membre Dernière intervention 18 juin 2013 - 17 mai 2011 à 12:38
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

3 réponses

cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 371
17 mai 2011 à 13:03
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
3
Utilisateur anonyme
18 mai 2011 à 18:50
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)
3
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
Merci
0
Rejoignez-nous