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

Développement Web en Java Discussion :

Où stocker des requêtes SQL ?


Sujet :

Développement Web en Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mai 2011
    Messages
    139
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 139
    Par défaut Où stocker des requêtes SQL ?
    Bonjour,


    Je voudrais avoir votre avis et vos conseils sur quelque chose que je n'ai jamais fait et qui traite sur le stockage de requêtes SQL.
    Je travaille sur une application JEE qui possède une architecture pour moi assez complexe et que j'ai comme devoir d'optimiser.

    Dans cette application, les requêtes SQL sont toutes stockées dans la base de données du serveur applicatif. Ce qui fait que pour effectuer des recherches et des traitements sur les BD, l'application doit tout d'abord accéder à la BD pour remonter la bonne requête, pour ensuite retourner dans la BD pour effectuer la requête remontée.. C'est le "serpent qui se mord la queue" comme on me l'a si bien dit

    J'ai donc dans l'idée de placer ces requêtes "dans" l'appli pour que les accès soient moins longs.

    Question : Où stocker ces requêtes ? Directement dans le code ? Dans un fichier ? Si oui quel genre de fichier ?

    Je précise que l'appli possède un EJB entièrement consacré aux accès à la BD et qui a comme rôle par exemple d'aller chercher des requêtes, de faire les connexions, etc... Donc il faudra de toutes manières que je modifie cet EJB en fonction de ce que je vais faire.

    Dans la table qui contient les requêtes, il y a 2 colonnes, une qui contient la requête à proprement parlé et une autre qui est le nom de cette requête.


    Merci d'avance pour vos réponses !

  2. #2
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    Octobre 2005
    Messages
    2 713
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur java, access, sql server
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 713
    Par défaut
    1. Combien y-a-t-il de requêtes ?
    2. Qui s'occupe de leur maintenance (création/modification) ?

    S'il y a beaucoup de requêtes et/ou on doit souvent les modifier
    alors il faudra probablement les laisser en base de données
    Labor improbus omnia vincit un travail acharné vient à bout de tout - Ambroise Paré (1510-1590)

    Consulter sans modération la FAQ ainsi que les bons ouvrages : http://jmdoudoux.developpez.com/cours/developpons/java/

  3. #3
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mai 2011
    Messages
    139
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 139
    Par défaut
    1. Dans la table il y a 100 lignes. Mais dans ces 100lignes, il y a certaines ligne qui sont des "parties" de requêtes. Par exemple :

    REQ_SELECT_NUM : Select x from y where o=p
    REQ_SELECT_NUM : And u=m
    REQ_SELECT_NUM : And n=d

    Il y a donc 3 lignes qui possèdent le même nom. La première ligne est la "base" de la requête, tandis que les autres lignes ne sont que les compléments si besoin.
    Donc au final je dirais qu'il y a 70 requêtes dans la table. Les 30 autres sont les compléments.

    2. En fait, logiquement c'est le responsable SI qui s'occupe de la maintenance, mais depuis sa création en 2008, rien n'a été rajouté ni modifié dans l'appli. Et ça compte pas l'être dans le futur.

  4. #4
    Membre Expert
    Avatar de fxrobin
    Homme Profil pro
    Architecte SI, Java Fan, API Manager
    Inscrit en
    Novembre 2007
    Messages
    875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Architecte SI, Java Fan, API Manager
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2007
    Messages : 875
    Par défaut
    pour ma part, j'irai mettre tout ça dans un fichier de properties ou encore dans un fichier XML mis dans WEB-INF ou dans META-INF.

    vu tes contraintes sur les "noms identiques" j'opterais pour un fichier XML genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?xml version="1.0" encoding="UTF-8" ?>
    <liste-requetes>
       <requete id="truc-muche">
           <base>Select x from y where o=p</base>
           <complement>And u=m</complement>
           <complement>And n=d</complement>
       </requete>
      .. etc ..
      .. etc ..
    </liste-requetes>
    Le tout parsé en DOM ou en JDOM.


    mais surtout pas en base de données ...

  5. #5
    Membre Expert
    Avatar de fxrobin
    Homme Profil pro
    Architecte SI, Java Fan, API Manager
    Inscrit en
    Novembre 2007
    Messages
    875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Architecte SI, Java Fan, API Manager
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2007
    Messages : 875
    Par défaut
    Citation Envoyé par fxrobin Voir le message
    Le tout parsé en DOM ou en JDOM.
    il était évident dans ma réponse que le DOM doit être conservé en mémoire et pas parsé à chaque fois, ce qui revient à une Map ou une List en mémoire

  6. #6
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    Octobre 2005
    Messages
    2 713
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur java, access, sql server
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 713
    Par défaut
    Eh bien c'est une belle unanimité ! tout le monde est d'accord sur le principe
    de charger les requêtes en mémoire !

    Il ne te reste plus qu'à choisir la forme qui te conviens le mieux
    (variable de session, Map, List, etc...)
    Labor improbus omnia vincit un travail acharné vient à bout de tout - Ambroise Paré (1510-1590)

    Consulter sans modération la FAQ ainsi que les bons ouvrages : http://jmdoudoux.developpez.com/cours/developpons/java/

  7. #7
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    Octobre 2005
    Messages
    2 713
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur java, access, sql server
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 713
    Par défaut
    Pour ne pas tout remonter "à la main" dans le code,
    tu peux, au moment où l'application est lancée, charger toutes tes
    requêtes dans un Map ou un Arraylist (en mémoire donc + rapide)
    Labor improbus omnia vincit un travail acharné vient à bout de tout - Ambroise Paré (1510-1590)

    Consulter sans modération la FAQ ainsi que les bons ouvrages : http://jmdoudoux.developpez.com/cours/developpons/java/

  8. #8
    Membre très actif Avatar de goute
    Homme Profil pro
    Développeur éclectique
    Inscrit en
    Novembre 2008
    Messages
    224
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur éclectique
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2008
    Messages : 224
    Par défaut
    Tu les laisses dans la bdd, tu les charges à l’exécution de l'application, puis tu les enregistres dans une variable de session. Comme ça tu ne fais qu'un seul accès a la bdd.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Structure] Stocker des requêtes SQL
    Par clisson dans le forum XML/XSL et SOAP
    Réponses: 2
    Dernier message: 05/12/2006, 13h45
  2. Fabriquer des requêtes sql à partir d'un document xml
    Par ktel dans le forum XQUERY/SGBD
    Réponses: 4
    Dernier message: 18/10/2005, 16h45
  3. [MFC] comment écrire des requêtes SQL
    Par kitsune dans le forum MFC
    Réponses: 9
    Dernier message: 27/09/2005, 15h23
  4. Journal des requêtes SQL effectuées
    Par Kcirtap dans le forum Décisions SGBD
    Réponses: 2
    Dernier message: 18/07/2005, 09h58
  5. Recherche ibrairie pour éxécuter des requêtes SQL via C++
    Par daemon dans le forum Choisir un environnement de développement
    Réponses: 5
    Dernier message: 14/06/2004, 10h28

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