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

Java Discussion :

[conception]mise a jour depuis bd


Sujet :

Java

  1. #1
    Membre éprouvé

    Inscrit en
    Septembre 2004
    Messages
    108
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 108
    Par défaut [conception]mise a jour depuis bd
    je recupere des donnees depuis une bd que j'affiche dans une jtable,
    a partir de mon interface graphique je peux inserer des données dans la bd

    le probleme est la mise a jour dans la jtable, est ce que je dois refaire un select a chaque fois que j'insere un element? c tres lourd

    la solution ne serait elle pas d'utiliser le striggers: est que c possible de faire un trigger qui me renvoi les donnes nouvellement inseres et les communiquer au une classe java?

    bd : postgresql

    merci d'avance

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    390
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 390
    Par défaut
    J'ai trouvé ca sur le site de postgre:
    http://gborg.postgresql.org/project/...rojdisplay.php

    Il est donc possible d'écrire des triggers en java.
    Pour faire marcher le tout ensemble, tu peux peut etre t en sortir avec des flux de données

  3. #3
    Membre Expert
    Avatar de fabszn
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2002
    Messages
    974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Mars 2002
    Messages : 974
    Par défaut
    Hello,

    Pourquoi tu veux refaire un select apres avoir inseré les données?

    Lors de ton insertion tu verifies bien que les données sont correctement insérées ( pas d'exception lors de l'insertion, transaction terminée sans Rollback..) Puis tu utilises les données que tu as en memoire pour les inserer dans la Jtable.

    Je crois que les triggers ne sont généralement pas tres recommander...(C'est ce que j'ai cru entendre! )

  4. #4
    Membre chevronné
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    390
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 390
    Par défaut
    J'aimerai bien savoir ou est ce que tu as entendu ça.

  5. #5
    Membre Expert
    Avatar de fabszn
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2002
    Messages
    974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Mars 2002
    Messages : 974
    Par défaut
    Hello,

    Sur différents projets sur lesquel j'ai travaillé.
    Mais je crois que c'est l'éternelle 'guerre', entre savoir ou placer les traitements...
    Un pro base de données te diras tout doit se trouver au niveau de la base (Proc. stock., trigger,etcc) Un developpeur 'fou' prefera garder la main sur les traitements et tout faire au niveau du code.

    Personnellement je n'ai jamais fait de strigger ... je me situe plutot du coté developpeur. Par contre je me rend compte de plus en plus qu'une base de données à cetaines possibilités d'optimisation et pas mal de fonction (SQL) qu'il est bon de ne pas ignorer...
    Et qu'il est bcp plus interessant de se situer entre le pro BDD et le developpeur 'fou' afin de repartir au mieux les traitements!

    Donc je remontais juste cette info, par rapport à des discutions que j'ai pu avoir sur differents projets. Maintenant je n'affirme rien.

  6. #6
    Membre chevronné
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    390
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 390
    Par défaut
    Ok c t juste pour savoir s'il y avai un réel risque à utiliser des Triggers.
    Et franchement dans de nombreux cas ca serait dommage de s'en passer, car ils peuvent tres utiles.
    Je me situe aussi coté developpeur, mais ayant vu plusieurs outils proposé par les BD pendant ma formation, je trouve dommage de se limiter au code.

  7. #7
    Membre éprouvé

    Inscrit en
    Septembre 2004
    Messages
    108
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 108
    Par défaut
    merci pour tous , je vois que probleme concerne bcp de personnes

    concernant ta solution faszn, je l'utilise déjà mais je me rend compte qu'elle n'est pas adaptée a mon probleme --> plusieurs clients vont utliser l'interface graphique et si l'un insere des données, il faut que tous voient les nouvelles données insérées dans leur jtables

    autre chose, je suis 100% de ton coté, moi aussi je suis un developpeur ,
    mes connaissances en sgbd sont un peu limités mais je me rend compte que l'utilsation de certaines fct des sgbd est certainement mieux que de coder

  8. #8
    Membre Expert
    Avatar de fabszn
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2002
    Messages
    974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Mars 2002
    Messages : 974
    Par défaut
    Hello,

    Effectivement si l'application est utilisée par plusieurs clients ca ne peux pas marchée..

    Maintenant tu pourrais essayé de charger ces données dans un cache au demarrage de l'application et de mettre à jour ce cache (Un cache global à tous les utilisateurs).

    c'est moins couteux de faire une requete en memoire que sur la base...bon apres il faut voir si il y a bcp de données...

  9. #9
    Membre éprouvé

    Inscrit en
    Septembre 2004
    Messages
    108
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 108
    Par défaut
    oui, c une solution
    mais est ce que l'utilisation des triggers ne serait pas plus appropriées
    --> a chaque fois q'un nouvel enregistrement est créé, les triggers notifie tous les clients des nouvelles donnees ( je sais pas s'ils peut faire ca mais je pense que oui)

  10. #10
    Membre Expert
    Homme Profil pro
    Dév. Java & C#
    Inscrit en
    Octobre 2002
    Messages
    1 414
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Dév. Java & C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 414
    Par défaut
    Hello,

    Je ne suis pas sûr des mes infos. Je vais dire sûrement de grosses bêtises:

    - Je pense que les triggers ne peuvent agir que dans la base de données. Ils ne peuvent pas interagir avec une application externe. La notification de la part d'un trigger à un client ne me semble faisable.

    - A mon avis, la solution est peut être à rechercher du côté des "cursors".
    J'ai souvenir que certains types de cursors génèrent une erreur (exception) quand ils naviguent dans une table et que cette table a été modifiée par un tiers.

  11. #11
    Membre chevronné
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    390
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 390
    Par défaut
    Moi je penserai plutot à des flux de données.
    Ou encore par des socket.
    Apres à toi de voir si c'est facile à mettre en place.

  12. #12
    Membre Expert
    Avatar de fabszn
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2002
    Messages
    974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Mars 2002
    Messages : 974
    Par défaut
    Citation Envoyé par barbu0055
    Moi je penserai plutot à des flux de données.
    Ou encore par des socket.
    Apres à toi de voir si c'est facile à mettre en place.
    Hello,

    Est ce que tu pourrais preciser ta pensée à propos des flux de données ou des sockets?

  13. #13
    Membre chevronné Avatar de miloux32
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    545
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 545
    Par défaut
    Pour en revenir aux triggers, ils sont 'en général' mal vu par leur consommation en ressources.
    En effet, les triggers servent souvent pour tester avant ou apres une insertion , quand tu inseres un élément c'est pas génant mais quand ce que tu inséres vient du résultat d'une autre requete ca bouffe énormement de ressource .

  14. #14
    Membre chevronné
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    390
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 390
    Par défaut
    A froid comme ca je ne peux pas trop te dire commentca peut se mettre en oeuvre.
    Mais les socket servent à faire communiquer deux applications.
    Mais je pense qu'il suffirai que ton trigger ecrive sur une socket les informations qui ont été insérées dans la table.
    Et ton application récupère les informations envoyées sur cette socket.
    Regarde dans les faq pour faire ce genre d'appli.

  15. #15
    Membre Expert
    Avatar de fabszn
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2002
    Messages
    974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Mars 2002
    Messages : 974
    Par défaut
    Citation Envoyé par barbu0055
    A froid comme ca je ne peux pas trop te dire commentca peut se mettre en oeuvre.
    Mais les socket servent à faire communiquer deux applications.
    Mais je pense qu'il suffirai que ton trigger ecrive sur une socket les informations qui ont été insérées dans la table.
    Et ton application récupère les informations envoyées sur cette socket.
    Regarde dans les faq pour faire ce genre d'appli.
    Hello,

    Je connaissais les sockets... mais je me demandais comment tu voyais leur utilisation dans ce cas la..

    Mais j'ai peur que ca fasse un peu usine à gaz à terme ... non?

  16. #16
    Membre Expert
    Homme Profil pro
    Dév. Java & C#
    Inscrit en
    Octobre 2002
    Messages
    1 414
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Dév. Java & C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 414
    Par défaut
    Salut barbu0055

    Crois-tu qu'il est possible de récupérer l'adresse Ip du client dans un trigger?

    J'en doute bcp mais je suis là pour apprendre ;-)

  17. #17
    Membre chevronné
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    390
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 390
    Par défaut
    Bonne question, aucune idée.
    Mais à partir du moment ou le trigger est écrit en java, pourquoi pas.

  18. #18
    Membre éprouvé

    Inscrit en
    Septembre 2004
    Messages
    108
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 108
    Par défaut
    merci à tous pour vos suggestions,

    j'ai discuté de la question avec mon chef de projet, il m'a expliqué que pour ce genre de traitement, on va utiliser un serveur d'application( a priori jboss ou jonas : on hesite encore entre les deux) qui se chargera de ces taches via l'utilisation de jms.

    mais comme je suis chargé de faire seulement la maquette ( le projet n'a pas encore vraiment démarré) , je n'ai pas à me soucier de ces détails

    Promis, je vous tiendrai au courant de notre conception et de la façon avec laquelle , on résoudra ce pb

    encore merci

  19. #19
    Membre Expert
    Avatar de fabszn
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2002
    Messages
    974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Mars 2002
    Messages : 974
    Par défaut
    Hello,

    Oui je serai interessé!!

    bon courage!

  20. #20
    Membre confirmé
    Inscrit en
    Avril 2003
    Messages
    141
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 141
    Par défaut
    Je suis dans le meme cas precedemment cité, et je ne vois pas non plus comment mettre en oeuvre un ecouteur sur un trigger afin de récuperer certaine modification de ma base...
    Si quelqu' un d'autre a une idée !!!!

    Merci d'avance

Discussions similaires

  1. [callisto] mise a jour depuis 3.1
    Par nytmare dans le forum Eclipse Java
    Réponses: 3
    Dernier message: 03/12/2006, 08h18
  2. [Access] Mise à jour de table depuis une autre
    Par Marcant dans le forum Langage SQL
    Réponses: 4
    Dernier message: 03/06/2006, 16h53
  3. [Conception] mise à jour automatique d'une base de donné distante
    Par bipbip2006 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 01/06/2006, 16h45
  4. [Stratégie][Idée]Mise à jour depuis appli
    Par Baptiste Wicht dans le forum Langage
    Réponses: 21
    Dernier message: 05/05/2006, 01h16
  5. probleme de mise a jour de la BD depuis un formulaire
    Par sebduduf dans le forum Requêtes
    Réponses: 1
    Dernier message: 01/11/2005, 18h07

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