Bonjour,
Récemment j'ai eu une réflexion d'un chef de projet comme quoi mes requêtes sql ne devaient pas être présente dans mon code.
Ainsi j'aurais aimé savoir où stocker celle-ci ,dans un fichier xml? où y a-t-il une méthode plus propre?
Bonjour,
Récemment j'ai eu une réflexion d'un chef de projet comme quoi mes requêtes sql ne devaient pas être présente dans mon code.
Ainsi j'aurais aimé savoir où stocker celle-ci ,dans un fichier xml? où y a-t-il une méthode plus propre?
Activ-developpement.net - Entreprise de creation site
Vous mettez vos requêtes sql dans le code directement ou autre?
Dites moi sa me rassura peut être.....
Sinon suite à cette remarque j'ai mis toutes mes requêtes dans un fichier xml
vous en pensez quoi???
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 <apprequete> <selectallmembre>select * ...... where truc=?</selectallmembre> </apprequete>
Activ-developpement.net - Entreprise de creation site
Dans les faits, ce qui compte, c'est l'agilité
Si tu as 2 requêtes, laisse les dans ton code.
Si tu en as plus, cela peut être bien de les sortir du code mais la questi à se poser alors est: pourquoi faire ?
Si c'est pour la mise au point, parcequ'elles peuvent changées, je pense sincèrement que c'est un faux prétexte car souvent, si la requête change, les traitements changent aussi donc il y as nécessité de ré ouvrir le code.
Pour ma part, je suis partisant des requêtes externalisées pour des raisons d'optimisations parceque je part du pricipe que c'est à un DBA d'affiner l'optimisation des requêtes et non au développeurs qui (aie, pas sur la tête) n'as pas toujours une bonne connaissance du langage SQL, de ses rouages et de la la manière optimale d'écrire des requêtes pour une base de données précise.
Remettons les choses dans leur contexte, je travail beaucoup avec des grands et très grands comptes, je ne peu donc pas justifier ma démarche et mon avis sur la question sur des projets que je ne connais pas et dans un environnement tecnique que je ne maitrise pas (connaissance des équipes de développement, conaissance de la connaissance du client, etc..)
Clic me...
CV en ligne
Il y a 10 types de personnes, celui qui connait le binaire, et l'autre...
Pas de réponse en MP...Merci
quelle est ta méthode d'externalisation?
Activ-developpement.net - Entreprise de creation site
Vive HIBERNATE !!!vous en pensez quoi???
Peut tu nous donner des précisions sur ton code car la réponse dépend de l'endroit ou tu places ces requêtes. En effet si tes requétes sont placées en dur dans tes pages Jsp c'est pas vraiment l'idéal.
En ce qui me concerne mes requêtes se trouves dans mon code Java mais sont centralisée dans des DAOs.
Petit à petit, l'oiseau fait son nid !
Je monte des architectures princpalement basée sur du Hibernate pour la persistance donc, dans mes fichiers hbm j'ai :Envoyé par romano2003
- mapping hibernate
- requêtes spécifique statique en HQL (si possible) ou SQL (agilité)
Quelques requêtes dynamiques dans le code (Criteria et/ou Example)
Sinon j'utilise Ibatis et là, même les requêtes dynamiques sont codées dans les fichiers d'Ibatis
Clic me...
CV en ligne
Il y a 10 types de personnes, celui qui connait le binaire, et l'autre...
Pas de réponse en MP...Merci
Mes requêtes ne sont pas mis en dur dans ma jsp.
Dans mes jsp je n'utilise que les tag struts donc pas de code.
Mes requêtes sont directement dans ma couche métier dans mes beans .
Merci .
Activ-developpement.net - Entreprise de creation site
Ton chef de projet doit avoir raison alors. Pour les tagLib dans tes jsp c'est parfait mais du coté du Model tu doit avoir un découpage du type DAO/POJO pour séparer l'accés à la base des objets métiers de ton projetMes requêtes sont directement dans mes classes java.
Petit à petit, l'oiseau fait son nid !
Il n'a pas dit que ses requetes étaient dans les objets metier, mais juste qu'elles etaient dans les classes java. S'il travaille direct en JDBC, les requetes peuvent tout à fait se trouver dans des DAO et donc externalisée des objets metier. Cependant, elles ne sont pas externalisées du code, c'est un fait.Envoyé par BRAUKRIS
Les externalisées dans des fichiers XML peut être une solution dans ce cas, avec l'utilisation de PreparedStatement qui permettent d'ajouter facilement des parametres.
Cependant, quand on souhaite avoir beaucoup de flexibilité (parametrage des tri...), ca complexifie les choses (ce qui ne veut pas dire que ce n'est pas possible )
Cours et tutoriels pour apprendre Java , FAQ Java, et Forum Java
"La liberté de tout être s'arréte là où commence celle de l'autre... Respecter l'autre, c'est préserver sa liberté d'être, de penser et de vivre"
Salut,
Je suis pour ma part partisant du stockage des requêtes dans un fichier properties.
Utiliser du XML pour cela me parrait exagérer : il n'y a pas besoin d'avoir une arborescence pour stocker des requêtes SQL; alors un fichier properties suffit.
J'ai expérimenté le principe suivant, et ça fonctionne très bien :
1) requêtes dans un fichier properties ( ou plusieurs, si il y a besoin de séparer certaines entités ) avec un nom explicite par requête, et la requête à coté ( généralement, c'est une requête de type PreparedStatement )
2) Récupération des requêtes, et création ( progressivement, et en fonction des besoins ) d'une HashTable contenant la requête, et le nom de celle-ci ( comme dans le fichier properties, mais en mémoire )
3) Une classe "SQLRequete.getRequete(String nomRequete)" qui retourne la requête, toute prête à être intégrée dans le PreparedStatement.
C'est assez rapide Seul problème : impossible de changer en dynamique le fichier properties et espérer que ça fasse un changement; Mais bon en général ce n'est jamais requis !
A+
K
Ah et bien sûr, il faut utiliser des classes DAO pour accéder à la BDD, mais ça c'est évident
Donc :
[client/présentation] --- [metier] --- [DAO]
DAO utilise le système décrit précédemment pour récupérer les requêtes, ainsi aucune requête dans le code.
K
merci beaucoup, je lis attentivement vos réponses.Et je vous tiens au courant.J'ai pensé à la même méthode que toi KiLVaiDeN cependant je n'utilise pas de classe DAO pour l'accès aux données.Je pense que je vais me diriger vers cette méthodologie.
Merci beaucoup.
Activ-developpement.net - Entreprise de creation site
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager