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 :

mise à jour schema data base postgres avec netbeans


Sujet :

NetBeans Java

  1. #1
    Membre à l'essai
    Homme Profil pro
    R&D
    Inscrit en
    Décembre 2013
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Décembre 2013
    Messages : 32
    Points : 16
    Points
    16
    Par défaut mise à jour schema data base postgres avec netbeans
    Bonjour,

    je viens de poster la même demande d'aide sur le forum postgresql, ne sachant pas pas si mon problème viens de netbeans ou de postgres ( ou peut être les deux ?)
    Il y a peut être un post de trop ? merci de m'en excuser dans ce cas, je supprimerai celui qui n'a pas lieu d'être.

    je n'arrive pas à mettre à jour mon schéma data base dans netbeans.
    Lorsque je modifie une colonne dans ma table existante postgres, pas de problème si je "recapture le schéma data base" , mais si je rajoute une table via pgadmin, et que j'effectue le même "recapture schema data base" avec netbeans, je ne retrouve pas ma table dans mon ide.
    pouvez vous me dire si le seul "recapture schéma data base" est valide pour faire ça ,
    Peut être aussi, que c'est du coté netbeans que je dois m'orienter ,

    merci du coup de main
    daniel

  2. #2
    Membre à l'essai
    Homme Profil pro
    R&D
    Inscrit en
    Décembre 2013
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Décembre 2013
    Messages : 32
    Points : 16
    Points
    16
    Par défaut mise à jour schema data base postgres avec netbeans
    Bonjour,

    quelqu'un peut il m'aider, je souhaite simplement savoir comment faire pour mettre à jour mes tables postgres avec netbeans.
    Le "recapture schema data base de netbeans" semble n'importer que les tables déja présentes ?
    Je ne trouve pas l'info,avez vous cette info ou un lien ,
    merci bien

  3. #3
    Traductrice
    Avatar de Mishulyna
    Femme Profil pro
    Développeur Java
    Inscrit en
    Novembre 2008
    Messages
    1 504
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Belgique

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

    Informations forums :
    Inscription : Novembre 2008
    Messages : 1 504
    Points : 7 840
    Points
    7 840
    Par défaut
    Bonjour,

    Tu veux mettre à jour tes classes Java suite à la modification de certaines tables de la base de données où mettre à jour tes tables de la base de données PostgreSQL suite aux modifications apportées à tes classes Java?

    Ce n'est pas clair du tout et en plus ce n'est pas une bonne pratique de faire des modifications dans tous les sens. Normalement l'analyse doit préciser le schéma de la base de données avec les tables en question et leurs colonnes. Si tu dois ajouter des colonnes à une table ça va encore: tu modifies le code de la classe entity.java correspondante par la suite.

    Si le schéma de la base de données a changé, tu pourrais mettre le projet actuel "de côté" (dans un autre dossier) et générer un nouveau projet, avec toutes les classes et les nouvelles relations @OneToMany et @ManyToOne qui souvent changent après l'ajout de tables. Puis il faut parcourir fichier par fichier et y ajouter le code déjà développé dans le premier projet pour ne pas devoir tout recommencer. C'est assez compliqué et ça prends du temps, mais si personne ne propose une façon plus simple: il me semble que c'est tout ce que tu peux faire.


    Les petits inconvénients de ce genre nous apprennent à bien réfléchir avant de se lancer au développement d'une application...
    Chaque fois que tu dis "je ne peux pas", n'oublie pas d'ajouter le mot "encore".

  4. #4
    Membre à l'essai
    Homme Profil pro
    R&D
    Inscrit en
    Décembre 2013
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Décembre 2013
    Messages : 32
    Points : 16
    Points
    16
    Par défaut suite ma demande
    Bonjour Mishulyna,

    j'ai du m'absenter temporairement et viens de prendre connaissance de ton message.
    En fait, je modifie une appli, je dois y ajouter de nouvelles fonctionnalités ( je travaille avec struts).
    Pour cela je modifie l'ensemble des fichiers ( package java, jpa, tag, xml, tag,... etc) et en même temps mes tables postgres.
    Si j'ajoute une colonne à une table existante, pas de problème, mais si je veux ajouter une nouvelle table, la mise à jour du schéma database de netbeans ( recaptute schema) ne met à jour que les colonnes modifiées des tables existantes et ignore l'ajout de nouvelles tables
    Ne sachant toujours pas comment faire, je me suis mis au trigger pour "jouer" entre les tables, c'est probablement pas ça qu'il faut faire, mais par défaut .... mais j'y reviendrais dans qq semaines, le temps que j'avance

    j'ai depuis une autre difficulté mais je pense ne pas être sur le bon forum, mais peut être que vous pouvez me donner votre avis, quel forum choisir ?, je ne sais pas si cela vient des triggers ou de mon jsp ?

    J'ai un formulaire jsp qui envoi des données variables à postgres, puis des triggers mixent ces données et stockent les résultats dans mes tables que je "devrais" récupérer aussitôt:
    Mes triggers fonctionnent correctement, les calculs se font et sont bien mis à jour dans postgres

    voila mes codes version trés courte
    mon jsp ( exemple simplifié):
    <tbody>
    <tr>
    <html:javascript formName="CreateForm"
    method="strutsValidation"
    dynamicJavascript="true"
    staticJavascript="true"/>

    <html:form action="/create.do"
    method="post"
    onsubmit="disabledOnSubmit(this);return validerFormPopup(this);">

    <td>
    // j'entre ma variable de calcul nommée "variable"
    <html:text property="variable" styleId="prixVente" onkeyup="return loadSubmit();" onkeypress="return loadSubmit();"></html:text>
    // la donnée "variable" est ensuite prise en charge par un trigger qui la mixe avec d'autres données et stocke le resultat dans "resultatscalcul"
    // puis je récupere ensuite mon "resultatscalcul"
    <INPUT type="resultatscalcul" id="resultatscalcul" name="resultatscalculname" value="">
    </td>
    <td>
    //je valide mon formulaire
    <html:submit styleId="submit" onclick="return loadSubmit(); reload(this)"><bean:message key="title.button.confirm"></bean:message></html:submit>
    </td>
    </html:form>
    </tr>
    </tbody>

    Resultat : mes tables se mettent à jour avec les triggers (before + update + insert), mais je ne sais pas récupérer les "resultatscalculs""
    Je récupére toujours les anciens "resultatscalculs" sauf si je redéploie l'appli avec netbeans
    Par contre mes données "variables" sont toujours mises à jour dans mon formulaire

    Pourquoi d'un coté je récupére toujours mes données d'entrées updatées mais pas les résultats updatés aprés calculs des triggers ?
    Ou mon formulaire va "pêcher" des données inexistantes dans ma base puisque déja modifiées par les triggers ?
    Ma colonne postgres affiche des données calculs qui ne sont pas celles affichées dans mon formulaire ?

    Si je peux avoir un éclairage pour savoir vers ou me tourner
    Merci

  5. #5
    Traductrice
    Avatar de Mishulyna
    Femme Profil pro
    Développeur Java
    Inscrit en
    Novembre 2008
    Messages
    1 504
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Belgique

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

    Informations forums :
    Inscription : Novembre 2008
    Messages : 1 504
    Points : 7 840
    Points
    7 840
    Par défaut
    Citation Envoyé par danbreizh Voir le message
    J'ai un formulaire jsp qui envoi des données variables à postgres, puis des triggers mixent ces données et stockent les résultats dans mes tables que je "devrais" récupérer aussitôt:
    Mes triggers fonctionnent correctement, les calculs se font et sont bien mis à jour dans postgres
    Bonjour,

    Tu as probablement une raison pour stocker ces valeurs, sauf qu'on nous a dit au cours SGBDR qu'il ne faut jamais stocker des valeurs calculées dans la base de données...
    Il me semble plus juste d'avoir dans la dataTable une colonne genre "Prix TVAC" avec la valeur par cellule "ligneDeCommande.quantite * (ligneDeCommande.article.prixUnitare - ligneDeCommande.article.valeurDiscount) * ligneDeCommande.article.tauxTVA" ou autre formule de ce genre.
    Chaque fois que tu dis "je ne peux pas", n'oublie pas d'ajouter le mot "encore".

  6. #6
    Membre expérimenté Avatar de nathieb
    Homme Profil pro
    DevOps
    Inscrit en
    Mai 2004
    Messages
    1 058
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : DevOps
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 058
    Points : 1 532
    Points
    1 532
    Par défaut Explication confuse
    Bonjour,


    Tout cela est bien confus.
    Il faut savoir que quand une page jsp/html appel un insert qui enclenche un trigger, il peut y avoir une temps de latence.
    C'est à dire un temps non négligeable ou le SGBD, effectue l'opération. donc il faut attendre la fin du trigger.
    Dans ton cas cela est impossible car un trigger est une opération autonome :
    Donc soit tu rediriges var une autre page le temps que le cacul se passe
    Soit, tu gère avec une procédure stockée, et tu attends qu'elle finisse.
    Autre solution ... tu gères une transaction, bref tu codes ton calcul dans une transaction, pas dans un trigger.

    Le fait que tu es les anciennes valeurs mais que la base soit à jour en est la preuve.

    Après pour ce qui est du stockage des calculs, effectivement pour des raisons "de respect" on ne stocke pas les calculs :
    mais :
    - si c'est du décisionnel je ne suis d'accord
    - si tu veux optimiser les accès des selects c'est un plus

    En règle général, pour afficher des agrégats, tu peux utiliser des vues ou des vues matérialisées, c'est propre et simple
    à mettre en place, et la maintenance s'effectue au niveau SGBD.

    Autre détail, important, on ne gère pas un schéma avec Netbeans, rien ne vaut une bonne modélisation à la "mano",
    tu éviteras bien des éceuils, après tu fais du rétro engineering pour récupérer les classes JPA.

    Olivier
    Architecte destructurant,
    be cool, be free

    Il nous reste Debian bien sûr

  7. #7
    Membre à l'essai
    Homme Profil pro
    R&D
    Inscrit en
    Décembre 2013
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Décembre 2013
    Messages : 32
    Points : 16
    Points
    16
    Par défaut procedure stockée ?
    Bonjour Mishulyna et Nathieb,

    merci de m'avoir répondu.

    Je vais essayer d'être plus clair, rendre simple des choses compliquées c'est difficile, mais l'inverse je sais faire
    J'ai bien des select avec mes calculs triggers.

    J'essaie toujours de résoudre cette difficulté, mais étant débutant j'avance sur des expertises que je ne connais pas ou très mal, il y a 1 mois je ne connaissais pas struts..
    Bref, je n'arrive toujours pas à récupérer mes calculs, j'ai compris l'explication d'Olivier, et ce qui se passe ( je crois ?) viendrait alors du fait que je submit tout mon formulaire d'un coup ?
    Pourtant lorsque après un submit du formulaire, je le ré-ouvre sans redéployer avec netbeans, (le(s) trigger(s) ayant alors fini de travailler), je pensais recharger alors toutes mes données y compris mes calculs(triggers), la base étant déjà mise à jour avant la réouverture,mais il s'avère que non, mon problème est toujours le même ? Il y a peut être autre chose ..

    Quelle est la différence entre une procédure stockée et un trigger ? un trigger stocke bien une procédure ?
    Si je peux avoir qq explication ça serait bien, je voudrais aussi creuser de ce coté, tu fais ça aussi avec postgres ?

    Actuellement je tente la gestion de la transaction, je code mes scripts de calcul dans mes tag, mais ça ne fonctionne encore pas ( ayant précédemment seulement désactivé mes triggers)
    le plus simple :
    <script type="text/javascript">
    function resultat1(){
    // mes variables de calculs
    var coef1= dwr.util.getValue("artDecCoef1");
    var lineaire = dwr.util.getValue("artDecCalculineaire");
    var resultatcalcul1 = dwr.util.getValue("artDecResultcalcul1");
    // mon calcul
    resultatcalcul1 = parseFloat(lineaire) * parseFloat(coef1).toString();
    var resultatcalcul1 = parseFloat(dwr.util.getValue("artDecResultcalcul1"));
    dwr.util.setValue("artDecResultcalcul1", artDecResultcalcul1)
    </script>

    concernant les modifs de postgres je vais y aller en ligne de commande (linux).

    Olivier tu me dis "pour afficher des agrégats, tu peux utiliser des vues ou des vues matérialisées, c'est propre et simple
    à mettre en place, et la maintenance s'effectue au niveau SGBD."
    , je ne connais pas cela, il faut pas réinstaller postgres ?
    Si tu as des infos, liens, tutos (simples) n'hésites pas, je peux toujours essayer.. faut peut être pas que je m'avance sur plusieurs directions à la fois, mais ça me tente y compris les procédures stockées

    Voila ou j'en suis, pas beaucoup avancé.

    merci par avance
    daniel

  8. #8
    Membre expérimenté Avatar de nathieb
    Homme Profil pro
    DevOps
    Inscrit en
    Mai 2004
    Messages
    1 058
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : DevOps
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 058
    Points : 1 532
    Points
    1 532
    Par défaut les vues
    Bonjour,

    Pour ce qui est d'une vue, c'est une table filtrée dans les grandes lignes.
    exemple :
    http://www.postgresql.org/docs/9.2/s...reateview.html

    genre, je veux
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    create vue as select personne, adresse, count(*) as NbreDeCommande From .... Where ... Group by personne, adresse;
    Tu as ainsi une colonne calculée, sans stockage car c'est une vue, donc calculée à chaque demande.
    Si tu veux encore gagner du temps tu passes aux vue matérialisées, mais c'est un autre sujet ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Quelle est la différence entre une procédure stockée et un trigger ? un trigger stocke bien une procédure ?
    Un trigger est une procédure stockée, mais qui est automatique, et qui est enclenchée par le système en fonction d'un action
    type delete, insert or update sur une table.
    Tu peux coder les deux de la même façon, cependant dans le cas d'un trigger, il faut prendre en compte les valeurs, avant
    et après modification d'un champ, soit les valeurs old et new.

    Sinon une procédure est une simple fonction que l'on appelle quand on veut, il n'y a cependant pas de valeur de retour.
    en PL/SQL, il existe la fonction 'avec valeur de retour', la procédure sans valeur de retour.

    Olivier
    Architecte destructurant,
    be cool, be free

    Il nous reste Debian bien sûr

  9. #9
    Membre à l'essai
    Homme Profil pro
    R&D
    Inscrit en
    Décembre 2013
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Décembre 2013
    Messages : 32
    Points : 16
    Points
    16
    Par défaut TRIGGER(S) + VUE(S) : compatibles dans le même formulaire ?
    bonjour Olivier,

    je vais tenter ta méthode "vues"
    Je me demande quand même si je peux associer dans le même formulaire des vues + des triggers ,

    Si j'ai bien compris, je peux donc en même temps afficher mon résultat calculé dans mon formulaire avec une "vue" tout en laissant mes triggers stocker les mêmes calculs dans ma base.
    A priori, je ne vois pas d'incompatibilité puisque ce serait 2 schémas de calculs indépendants, est ce que je me trompe ?

    J'avance quand même en parallèle sur des scripts dans mes tags, sans réussite jusqu'à maintenant, j'ai désactivé mes triggers et mon script coté serveur ne fait pas mes calculs....

    Je vais commencer par ton lien.
    Merci bien de tes conseils

    daniel

Discussions similaires

  1. Problème avec mise à jour dans la base de données
    Par emmano3h dans le forum ASP.NET MVC
    Réponses: 1
    Dernier message: 20/10/2010, 17h46
  2. Mise à jour d'une base de données avec XML ou CSV
    Par mims1664 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 3
    Dernier message: 14/05/2010, 22h42
  3. Réponses: 33
    Dernier message: 03/09/2009, 18h27
  4. [AJAX] mise à jour d'une base avec un select
    Par farooko dans le forum AJAX
    Réponses: 12
    Dernier message: 11/06/2009, 10h30
  5. Mise à jour de données temps réel avec Pentaho Data Integration
    Par jonathansauret dans le forum kettle/PDI
    Réponses: 0
    Dernier message: 29/10/2008, 15h55

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