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

JDBC Java Discussion :

PreparedStatement et Clause SQL FROM


Sujet :

JDBC Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de wdionysos
    Profil pro
    Consultant informatique
    Inscrit en
    Novembre 2003
    Messages
    222
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Novembre 2003
    Messages : 222
    Par défaut PreparedStatement et Clause SQL FROM
    Bonjour a tous !

    Lorsque j'écris un DAO j'ai pour habitude de laisser mes requêtes en début de classe dans des constantes String statiques du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    private final static ma requete = "SELECT * FROM MaTable where CHAMPS = ?;";
    Bien sur un DAO porte sur une et une seule table en l'occurence ici "MaTable".

    Mais voila pour cette fois j'ai besoin de créer une requete qui génère une vue a partir de cette table et je voudrais utiliser les même methodes java qui execute mes PreparedStatement sur une table ayant un autre nom sachant que toutes les tables ont exactement la meme structure.

    Hors, avec les methodes setObject & compagnie de PreparedStatement, on peu setter toute sorte de parametres des clause Where, Set ou Group By mais je n'arrive pas a setter le nom de la table dans la clause FROM, du genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    private final static ma requete = "SELECT * FROM ? where CHAMPS = ?;";
    Y'a t-il une solution ou doisje écrire une methode specifique qui change ce nom et renvoie une String de la requete

    Merci de votre aide

    WDionysos.

  2. #2
    Membre émérite
    Avatar de sironimo
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    669
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Mai 2004
    Messages : 669
    Par défaut
    Citation Envoyé par wdionysos
    écrire une methode specifique qui change ce nom et renvoie une String de la requete
    Personnellement, je choisirais cette solution en paramétrant le nom de la table

  3. #3
    Membre confirmé Avatar de wdionysos
    Profil pro
    Consultant informatique
    Inscrit en
    Novembre 2003
    Messages
    222
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Novembre 2003
    Messages : 222
    Par défaut merci
    Ok

    merci de ton conseil, c'est ce aussi pour quoi j'ai opté.

    C'est dommage que toutes les clause SQl ne soit pas atteignable par les jeu setXXX de PreparedStatement. ca eviterai bien de rajouter toute une surcouche de methode surchargées.

    En meme temps, si l'esprit de PreparedStatement est de s'intégrer dans des couches d'abstraction au données alors ca me parait aussi normal car selon la norme une table = un DAO

    Mais je n'entrevois aucune autre solution pour un type d'application necessitant de generer des tables de meme type ou des vues a la demande et de posseder une seule et unique interface d'acces...

    Tans pis

    Bonne journée a Toi !

    WDio

  4. #4
    Inactif  
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    2 189
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 189
    Par défaut
    une table entité = un accès dao pour les relations tu le gères dans le dao des entités

  5. #5
    Membre confirmé Avatar de wdionysos
    Profil pro
    Consultant informatique
    Inscrit en
    Novembre 2003
    Messages
    222
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Novembre 2003
    Messages : 222
    Par défaut
    Oui, je suis d'accord avec toi s'il s'agit d'une application web MVC standard.

    Mon problème est plus particulier des histoires de calcul statistiques en cascade au sein d'une base embarquée dans une app standalone. Pas vraiment du relationnel tout ça.

    Sans rentrez dans les détails, j'ai finalement opter pour un mix de PreparedStatement et de java.text.MessageFormat pour la construction de requetes imbriquées complexes...

    Merci a tous pour votre attention et votre devouement !

    wdio

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

Discussions similaires

  1. Problème avec la clause SQL 'like' et 'order by'
    Par alexqc25 dans le forum WinDev
    Réponses: 1
    Dernier message: 25/05/2007, 19h47
  2. clause sql sur champ Date avec masque de saisie
    Par TOMSEC dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 05/04/2007, 12h20
  3. [Access] Expression avec une clause SQL faisant appel à une variable
    Par elgringo2007 dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 27/06/2006, 13h02
  4. Taille clause SQL
    Par engi dans le forum Langage SQL
    Réponses: 7
    Dernier message: 29/03/2006, 10h42
  5. Réponses: 1
    Dernier message: 08/11/2005, 14h32

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