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

Langage Java Discussion :

Fichier de configuration cle-valeur et nombre de cle dynamique


Sujet :

Langage Java

  1. #1
    Membre confirmé
    Inscrit en
    Mars 2006
    Messages
    80
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Mars 2006
    Messages : 80
    Par défaut Fichier de configuration cle-valeur et nombre de cle dynamique
    Bonjour,

    Alors voilà c'est bien simple, j'ai une application qui est configurable via un fichier de configuration texte (qui contient en grande partie des requêtes SQL, c'est ces lignes contenant des requêtes sql qui m'intéressent particulièrement pour ce que je souhaites pouvoir faire).

    Actuellement ça fonctionne, mais à chaque fois que je veux un peu mieux paramétrer cette application, je dois tout retravailler, code et fichier de configuration.

    Ce que j'aimerais c'est qu'on m'aide à trouver un moyen d'avoir un nombre de paramètres dynamique dans ce fichier texte, de manière à ce si j'ajoute une requête SQL (format: cle = valeur (requête SQL)), elle soit chargée et exécutée/stockée sans que j'ai à modifier le code source.

    Je vais expliquer différement parce que quand je relis ce que j'ai mis ça me paraît pas très clair.

    Dans mon fichier texte, j'ai des lignes:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    testSelectOracle=SELECT \'bonjour\' FROM dual
    testSelectMySql=SELECT \'bonjour\'
    testSelectRDB=SELECT \'bonjour\' FROM rdb$database
    testSelectSqlServer=SELECT \'bonjour\'
     
    //et d'autres requêtes
    Actuellement elle sont chargées, mais chacune de ces lignes est appelée implicitement dans mon code. Si je rajoute par exemple une autre requête, je dois modifier mon code en conséquence. Ce n'est pas pratique.

    Ce que je voudrais c'est donc pouvoir rajouter une ligne sous ce format:
    testSelectNom_d_un_autre_type_de_DB = requête
    Et qu'elle soit chargée sans que j'ai explicitement à l'indiquer dans ma source.

    Par exemple que toutes les lignes commençant par "testSelect" dans le fichier de configuration soient chargées dans un tableau de string, et puis je me débrouille mais bon... voilà le principe.

    Vous avez déjà fait ça ?
    Comment je pourrais faire?
    J'ai lu qu'éventuellement properties.propertyNames() pourrait m'aider mais je suis pas trop sûr de moi sur ce coup.

    D'avance merci.
    Bien à vous.

  2. #2
    Membre éclairé
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Septembre 2006
    Messages
    572
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 572
    Par défaut
    Jette un coup d'oeil du coté de l'api reflexive et toutes les histoires de bean et compagnie.

    Dans un de mes programmes, je déclare dans une classe config l'intégralité de toutes les options possibles et imaginables pour mon programme, avec une valeur par défaut, et depuis un fichier xml (mais ça pourrait etre un flux) avec la reflexivité de base (getFields et compagnie) je remplis les différents champs.

    Donc qqun qui configure mon programme ne met que les options qu'il souhaite changer.

    Maintenant si on peut te rajouter n'importe quelle option n'importe quand, alors oui, reflexive, beans, etc.

  3. #3
    Membre confirmé
    Inscrit en
    Mars 2006
    Messages
    80
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Mars 2006
    Messages : 80
    Par défaut
    Okay je vais regarder de ce côté là, merci

    D'autres suggestions ? ^^

  4. #4
    Membre actif
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 62
    Par défaut
    Sinon tu charge l'intégralité du fichier et tu itères sur les clés en effet propertyNames correspond a ton besoin

  5. #5
    Membre confirmé
    Inscrit en
    Mars 2006
    Messages
    80
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Mars 2006
    Messages : 80
    Par défaut
    Mmmh, actuellement je charge ligne par ligne, en spécifiant le fichier et la clé dont je dois extraire la valeur.

    Comment je peux faire pour charger TOUT ce qui se trouve dans un fichier ?

    Et limite tout stocker dans une énorme string que je découpe à coup de substring par après... à la limite.

    Merci pour les réponses.

  6. #6
    Membre Expert
    Avatar de gifffftane
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 354
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 2 354
    Par défaut
    Je vais certainement dire un bêtise, mais pourquoi n'utilises-tu pas un fichier de Properties ?

  7. #7
    Membre confirmé
    Inscrit en
    Mars 2006
    Messages
    80
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Mars 2006
    Messages : 80
    Par défaut
    Hé bien, il m'avait été demandé de réaliser un fichier de configuration texte, mais je peux essayer de négocier pour passer en fichier de config xml...

    Mais bon, y'a vraiment aucun moyen simple de faire ce truc à partir d'un fichier texte ?

  8. #8
    Membre Expert
    Avatar de gifffftane
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 354
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 2 354
    Par défaut
    Bon, et les properties fichiers ne pas va ?... (je ne sais pas comment il faut s'exprimer ? )

  9. #9
    Membre confirmé
    Inscrit en
    Mars 2006
    Messages
    80
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Mars 2006
    Messages : 80
    Par défaut
    Hé bien je n'ai toujours pas reçu de réponse quant à l'éventuelle possibilité d'utiliser un fichier properties.

    C'est déstabilisant.

  10. #10
    Modérateur
    Avatar de Alkhan
    Homme Profil pro
    ingénieur full stack
    Inscrit en
    Octobre 2006
    Messages
    1 232
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : ingénieur full stack

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 232
    Par défaut
    bonjour,

    le fichier de properties est un fichier texte pas un fichier de config xml
    Il se présente sous la forme clé=valeur
    Il n'y a pas de problème, il n'y a que des solutions.
    Cependant, comme le disaient les shadoks, s'il n'y a pas de solution, c'est qu'il n'y a pas de problème.
    Si toutefois le problème persiste, la seule solution restante est de changer le périphérique qui se trouve entre la chaise et l'écran

    Mes Articles : Mon premier article est sur le language D
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  11. #11
    Membre éprouvé
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    132
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2007
    Messages : 132
    Par défaut
    +1 pour la proposition de gifffftane le fichier de properties devrait résoudre ton problème.

    Sinon peut-être que si tu crées un fichier par type de base ce serait plus simple à maintenir non ?

    Par exemple
    oracle.properties:
    testSelect=SELECT \'bonjour\' FROM dual
    Mysql.properties:
    testSelect=SELECT \'bonjour\'
    Ainsi les noms des clés sont toujours les même et c'est uniquement au chargement de l'appli que tu charges le bon fichier.

  12. #12
    Membre confirmé
    Inscrit en
    Mars 2006
    Messages
    80
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Mars 2006
    Messages : 80
    Par défaut
    Bhein, en fait, voici ce que contient, en partie, mon fichier texte:
    .
    .
    .
    testSelectOracle=SELECT \'bonjour\' FROM dual
    testSelectMySql=SELECT \'bonjour\'
    testSelectSqlServer=SELECT \'bonjour\'
    .
    .
    .
    Et par la suite je viendrai greffer des requêtes d'update qui auront comme nom:
    testUpdateOracleX=
    testUpdateMySqlX=
    testSelectSqlServerX=
    Le 'X' étant remplacé par un numéro pour bien distinguer les différentes requêtes d'update (à appliquer aussi aux SELECT's)

    Donc mon fichier de config' (Config.txt) semble ressembler pas mal à un fichier properties...

    J'aurais loupé un épisode sur les fichier properties ?

  13. #13
    Modérateur
    Avatar de Alkhan
    Homme Profil pro
    ingénieur full stack
    Inscrit en
    Octobre 2006
    Messages
    1 232
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : ingénieur full stack

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 232
    Par défaut
    non c'est bien un fichier de properties que tu dois utiliser
    Il n'y a pas de problème, il n'y a que des solutions.
    Cependant, comme le disaient les shadoks, s'il n'y a pas de solution, c'est qu'il n'y a pas de problème.
    Si toutefois le problème persiste, la seule solution restante est de changer le périphérique qui se trouve entre la chaise et l'écran

    Mes Articles : Mon premier article est sur le language D
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

Discussions similaires

  1. Changer valeur dans fichier de configuration ini
    Par tete-jaune dans le forum Langage
    Réponses: 2
    Dernier message: 14/03/2013, 17h32
  2. Réponses: 4
    Dernier message: 09/09/2005, 12h59
  3. [Log4j] fichier de configuration ou XML ?
    Par nabilblk dans le forum Logging
    Réponses: 2
    Dernier message: 02/09/2005, 16h42
  4. [langage] Lire un fichier de configuration
    Par bobinoo dans le forum Langage
    Réponses: 3
    Dernier message: 04/08/2004, 15h53
  5. Les fichiers de configuration de comptes avec Samba
    Par tomnie dans le forum Réseau
    Réponses: 4
    Dernier message: 18/03/2004, 08h30

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