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

Spring Java Discussion :

queryForList avec un nombre dynamique de paramêtres [Data]


Sujet :

Spring Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 18
    Par défaut queryForList avec un nombre dynamique de paramêtres
    Bonjour, dans mon appli j'ai une page de recherche ou il y a 4 champs dont 1 seul est obligatoire. Lorsque je lance la recherche la requête SQL est donc crée dynamiquement d'après les saisies de l'utilisateur. Il y a donc un nombre aléatoire de paramêtre d'après les saisis de l'utilisateur.

    Je sais pas comment faire ça avec le queryForList ...

    Voilà ce que j'ai :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    // Récupération de la requête dans le fichier Requests.properties
    String v_Request = PropertyResourceBundle.getBundle("Requests").getString("get_device_list");
     
     
    // Je vérifie si le champ FTI_LOGIN n'est pas vide
    if ((p_FtiLogin != null) && (p_FtiLogin.length() > 0))
      v_Request = v_Request + " AND FTI_LOGIN = ? ";
     
     
    // Je vérifie si le champ ACCOUNT_ID n'est pas vide
    if ((p_AccountId != null) && (p_AccountId.length() > 0))
      v_Request = v_Request + " AND ACCOUNT_ID = ? ";
     
     
    // Execution de la requête
    List<Map<String, Object>> v_Results = getSimpleJdbcTemplate().queryForList(v_Request, p_Pays, ...);
    Je vérifie que les variables p_FtiLogin et p_AccountId ne sont pas vide pour completer la requête.
    Mais après comment les placer dans le queryForList sachant qu'ils peuvent ne pas être remplis ...

    Merci

  2. #2
    Expert confirmé
    Avatar de djo.mos
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    4 666
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 666
    Par défaut
    Salut,
    Accumules les pâramètres dans un tableau que tu passes ensuite à query :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    String v_Request = PropertyResourceBundle.getBundle("Requests").getString("get_device_list");
     
     
    // Je vérifie si le champ FTI_LOGIN n'est pas vide
    List<Object> params = new ArrayList<Object>(4);
     
    if ((p_FtiLogin != null) && (p_FtiLogin.length() > 0)){
      v_Request = v_Request + " AND FTI_LOGIN = ? ";
      params.add(p_FtiLogin);
    }
     
     
    // Je vérifie si le champ ACCOUNT_ID n'est pas vide
    if ((p_AccountId != null) && (p_AccountId.length() > 0)){
      v_Request = v_Request + " AND ACCOUNT_ID = ? ";
      params.add(p_AccountId);
    }
    }
     
     
    // Execution de la requête
    List<Map<String, Object>> v_Results = getSimpleJdbcTemplate().queryForList(v_Request, params.toArray());

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 18
    Par défaut
    Merci c'est nickel !!!

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

Discussions similaires

  1. [1.x] Formulaire fusionnant avec un nombre dynamique d'autres formulaires.
    Par Cristabelle dans le forum Symfony
    Réponses: 5
    Dernier message: 04/05/2010, 17h54
  2. Réponses: 1
    Dernier message: 01/03/2010, 11h15
  3. Réponses: 0
    Dernier message: 18/03/2009, 18h00
  4. Réponses: 3
    Dernier message: 07/08/2008, 14h09

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