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

Persistance des données Java Discussion :

Externaliser requetes SQL


Sujet :

Persistance des données Java

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 42
    Points : 28
    Points
    28
    Par défaut Externaliser requetes SQL
    Bonjour à tous ,

    Je développe actuellement une application JAVA et je m'occupe de la couche intégrations et plus précisément de coder les DAO.Mais voila problème le prof ne veut pas de SQL dans le code JAVA, il veut que le SQL soit externalisé dans des fichiers externes. Quelqu'un saurait-il comment faire ?Je vois bien l'utilisations de fichiers properties mais je me dis comment mettre les conditions de mes requêtes car celles-ci change....

    Merci d'avance.

  2. #2
    Modérateur
    Avatar de paissad
    Homme Profil pro
    Ingénieur de développement (Java/JEE/Eclipse RCP,EMF & webMethods)
    Inscrit en
    Avril 2006
    Messages
    1 043
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur de développement (Java/JEE/Eclipse RCP,EMF & webMethods)
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 043
    Points : 2 560
    Points
    2 560
    Par défaut
    Bonjour,
    pour tes DAOs, tu comptes utiliser JDBC ou JPA ?

    Cordialement,
    Nous n'héritons pas de la terre de nos parents, nous l'empruntons à nos enfants.
    Le chat du site est aussi ici pour aider. Ne pas hésiter à visiter !

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 42
    Points : 28
    Points
    28
    Par défaut
    bonjour,

    Avec mes DAO j'utilise jdbc de la base MySQL.

    Cordialement,

  4. #4
    Modérateur
    Avatar de paissad
    Homme Profil pro
    Ingénieur de développement (Java/JEE/Eclipse RCP,EMF & webMethods)
    Inscrit en
    Avril 2006
    Messages
    1 043
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur de développement (Java/JEE/Eclipse RCP,EMF & webMethods)
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 043
    Points : 2 560
    Points
    2 560
    Par défaut
    Je ne sais pas à quel point ton prof ne veux pas voir requêtes sql dans ton code .java, m'enfin bon, je ne suis pas convaincu que cela soit vraiment ultra bénéfique de vouloir tout mettre dans un fichier .properties paramétrable.
    D'ailleurs, tu ne pourras jamais tout mettre dans un fichier .properties

    Sinon, oui tu peux faire dans ce style, créer un fichier sql.properties qui contiendrait ceci par exemple:

    Code properties : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    # les requêtes pour la table 'users' -> le DAO pour la table users
    userDAO.selectAllUsers = SELECT * FROM TABLE users;
    userDAO.selectByName = SELECT * FROM TABLE users u WHERE u.name = ?;
    userDAO.selectByCountry = SELECT * FROM TABLE users WHERE country = ?;
    userDAO.countUsers = SELECT COUNT(*) FROM users;
     
    # les requêtes pour la table 'roles'
    roleDAO.selectAll = SELECT * FROM TABLE role;
    roleDAO.selectByName = SELECT * FROM TABLE role WHERE role_name = ?

    Note: Tu remarqueras que j'ai fait exprès de préfixer par des mots parlants/significatifs comme roleDAO, userDAO ... afin que la clé property soit unique et que l'on s'y retrouve plus facilement

    Ainsi, tu pourras charger la bonne requête paramétrée que tu voudras utiliser et tu n'auras qu'à remplacer les points d'interrogation (?)
    C'est une proposition parmi d'autres, tu pourrais même le rendre plus générique, mais cela rendrait complexe cette discussion, faisons simple d'abord

    Voilà
    Nous n'héritons pas de la terre de nos parents, nous l'empruntons à nos enfants.
    Le chat du site est aussi ici pour aider. Ne pas hésiter à visiter !

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 42
    Points : 28
    Points
    28
    Par défaut
    Bonjour,

    J'ai bien compris votre réponse et je vous remercie pour votre aide mais j'ai encore une petite question: Comment faire passer les paramètres (les conditions de la requête) à mon fichier properties pour que l'appel à la requête s'execute correctement.

  6. #6
    Modérateur
    Avatar de paissad
    Homme Profil pro
    Ingénieur de développement (Java/JEE/Eclipse RCP,EMF & webMethods)
    Inscrit en
    Avril 2006
    Messages
    1 043
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur de développement (Java/JEE/Eclipse RCP,EMF & webMethods)
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 043
    Points : 2 560
    Points
    2 560
    Par défaut
    Quand tu vas récupérer une ligne de propriété, par exemple:

    Code java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Properties sqlProps = new Properties();
    sqlProps.load(".....");
    String sqlQuery = sqlProps.getProperty("userDAO.selectByName");
    // Pour la suite, voir le lien vers la FAQ JDBC suivant
    Voici le lien vers la FAQ http://java.developpez.com/faq/jdbc/...paredstatement

    la variable sqlQuery contient déjà les points d'interrogation, tu peux donc faire tes requêtes préparées ...
    Nous n'héritons pas de la terre de nos parents, nous l'empruntons à nos enfants.
    Le chat du site est aussi ici pour aider. Ne pas hésiter à visiter !

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 42
    Points : 28
    Points
    28
    Par défaut
    Merci pour ton aide je vais essayer pour voire ce que sa donne

Discussions similaires

  1. Problème Requete SQL et QuickReport
    Par arnaud_verlaine dans le forum C++Builder
    Réponses: 7
    Dernier message: 07/01/2004, 09h31
  2. Prob de requete sql et variable
    Par agent-zaizai dans le forum ASP
    Réponses: 11
    Dernier message: 21/10/2003, 16h54
  3. requete sql
    Par autumn319 dans le forum ASP
    Réponses: 22
    Dernier message: 10/09/2003, 16h46
  4. Paramètre requete SQL (ADOQuery)
    Par GaL dans le forum C++Builder
    Réponses: 3
    Dernier message: 30/07/2002, 11h24
  5. Resultat requete SQL
    Par PierDIDI dans le forum Bases de données
    Réponses: 2
    Dernier message: 23/07/2002, 13h43

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