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

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

Votre réponse

3 réponses

Meilleure réponse
Messages postés
6450
Date d'inscription
mardi 8 mars 2005
Dernière intervention
17 mai 2018
17 mai 2011 à 13:03
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

Merci cs_Julien39 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 91 internautes ce mois-ci

Commenter la réponse de cs_Julien39
Meilleure réponse
18 mai 2011 à 18:50
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)

Merci Utilisateur anonyme 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 91 internautes ce mois-ci

Commenter la réponse de Utilisateur anonyme
Messages postés
34
Date d'inscription
lundi 25 avril 2011
Dernière intervention
18 juin 2013
19 mai 2011 à 10:06
0
Merci
Merci
Commenter la réponse de pink90

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.