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

NetBeans Java Discussion :

Gestion d'une table de données à partir d'une clé primaire composée de deux entités


Sujet :

NetBeans Java

  1. #1
    Membre à l'essai
    Inscrit en
    Avril 2008
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 20
    Points : 11
    Points
    11
    Par défaut Gestion d'une table de données à partir d'une clé primaire composée de deux entités
    Bonjour,

    Je souhaite gérer une table de données à partir d'un formulaire simple, permettant de mettre à jour des enregistrements et de les créer s'ils n'existent pas.

    Ces enregistrements sont identifiés par une clé primaire (idEntite, Annee).
    J'ai un formulaire qui contient deux jComboBox désignant l'entité et l'année, ainsi qu'une liste de champs numériques à remplir par l'utilisateur.

    Mon problème : comment utiliser la couche de persistence pour :
    1 / Sélectionner l'enregistrement correspondant aux comboBox sélectionnées ;
    2 / Afficher dans les champs de données le contenu de cet enregistrement ;
    3 / Une fois ces données modifiées, enregistrer le contenu du formulaire dans la table ?

    Je me suis basé sur le modèle de NetBeans pour les applications CRUD mais j'ai supprimé la table qui est générée puisque je n'en ai pas besoin dans mon formulaire.

    Merci d'avance pour votre aide !

  2. #2
    Membre à l'essai
    Inscrit en
    Avril 2008
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 20
    Points : 11
    Points
    11
    Par défaut
    Pas d'idée ?

  3. #3
    Membre confirmé Avatar de JoloKossovar
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    532
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 532
    Points : 576
    Points
    576
    Par défaut
    Je ne comprend pas bien ton probleme ...
    1 / Sélectionner l'enregistrement correspondant aux comboBox sélectionnées
    Qu'est ce qui te pose probleme ? Dans l'action lié au formulaire tu récupères la valeur de l idEntité et de l'année et tu charge l'entrée correspondante dans ta table. En plus, vu que l'association de ces deux property représente la clé primaire de ta table, tu t'assure que l'enregistrement est unique donc impeccable.

    2 / Afficher dans les champs de données le contenu de cet enregistrement ;
    Tu recharge la même page mais tu met dans ta requete les valeurs des champs correspondant. Donc la premiere foiis que tu arrive sur le formulaire, il est vide mais c'est parce que les données du formulaire ne sont pas rensigné, sont à null si tu préfères.

    3 / Une fois ces données modifiées, enregistrer le contenu du formulaire dans la table ?
    Meme principe. Donc, tu vas avoir 2 actions lié a un seul formulaire (chargé et enregistré). Il faut donc que tu utilise un dispatchAction :
    http://java.developpez.com/faq/strut...dispatchAction

  4. #4
    Membre à l'essai
    Inscrit en
    Avril 2008
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 20
    Points : 11
    Points
    11
    Par défaut
    En fait il ne s'agit pas d'un formulaire web, mais d'une application standalone créée dans NetBeans à partir du modèle "Database Application".

    En fait, après avoir un peu avancé, la seule méthode que je vois c'est :
    1/ me taper tous les champs un par un (il y en a une cinquantaine) en faisant des "set" sur chaque jTextField à partir des résultats de ma première requête, 2/ créer une 2° requête "update" avec les valeurs que je récupère avec des "get" sur chaque jTextField ?

    Y-a-t-il une méthode plus simple pour lier tous les champs du formulaire à un objet que je mettrais à jour plus simplement ?

    Pour l'instant, je fais la chose suivante pour récupérer un objet représentant l'enregistrement voulu :

    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
     
    public void chargerFormulaire() {
     
            entityManager.getTransaction().commit(); // Ferme la transaction précédente        
            int idEntiteCourante = getIdBanqueSelected(); // Récupère l'Id correspondante à l'entité sélectionnée dans la comboBox
            int anneeCourante = Integer.parseInt(jComboBox1.getSelectedItem().toString()); // Récupère la comboBox de l'année
     
            entityManager.getTransaction().begin();
            List<Donnees> d;
            d = entityManager.createNativeQuery("SELECT * FROM Donnees WHERE ID_ENTITE = " +idEntiteCourante + " AND Annee = " + anneeCourante).getResultList();
            assert(d.size()==1);
     
            entityManager.getTransaction().commit();
     
     
        }
    Là aussi je me dis qu'il doit y avoir plus simple ?

Discussions similaires

  1. [AC-2010] Insérer dans un champ d'une table des données à partir de requete count
    Par freeman3869 dans le forum VBA Access
    Réponses: 1
    Dernier message: 12/06/2015, 21h39
  2. Réponses: 2
    Dernier message: 31/03/2011, 11h22
  3. Réponses: 8
    Dernier message: 14/02/2008, 18h04
  4. [MySQL] Enregistrer dans une base de données à partir d'une liste déroulante
    Par snakejl dans le forum PHP & Base de données
    Réponses: 12
    Dernier message: 17/05/2006, 16h32
  5. Réponses: 9
    Dernier message: 07/10/2004, 19h41

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