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 :

Comment passer les paramètres du PreparedStatement pour le type IN


Sujet :

JDBC Java

  1. #1
    Membre régulier Avatar de java_fun
    Inscrit en
    Novembre 2004
    Messages
    117
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 117
    Points : 102
    Points
    102
    Par défaut Comment passer les paramètres du PreparedStatement pour le type IN
    bonjour,

    j ai une requete de ce type :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    select .... from ... where id in (?)
    comment on peux alimenter le champs in , en utilisant un vector pour

    Cordialmen
    Java fun is back

  2. #2
    in
    in est déconnecté
    Membre expérimenté Avatar de in
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 612
    Points : 1 718
    Points
    1 718
    Par défaut
    je dis ça au pif mais en créant un String 'val1','val2' ... par exemple. Et apres de faire appel à setString ...

    Qu'as tu essayé pour l'instant ?
    Quels sont les problèmes que tu rencontre ?
    "If email had been around before the telephone was invented, people would have said, 'Hey, forget email! With this new telephone invention I can actually talk to people!"

    Besoin d'une nouvelle méthode pour développer ? -> http://www.la-rache.com/

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    25
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 25
    Points : 11
    Points
    11
    Par défaut
    Salut.

    La réponse au pif ne marchera pas malheureusement. En effet, Le ? va être remplacé par 'val1', 'val2, 'val3' mais comme par défaut le driver echape les caractères, cela donnera:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ... IN ('''val1'', ''val2'', ''val3''')
    Ce qui évidemment n'est pas ce que tu recherche.

    La seulle méthode que je connaisse est celle-ci:
    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
    23
    24
    25
    26
     
    // En admettant que tu as tes valeurs dans un object List par exemple
    List<String> bindVars = new ArrayList<String>();
    bindVars.add("val1");
    bindVars.add("val2");
    ...
     
    // tu peux faire ainsi:
    String sql = "select ... where ... IN (";
     
    // préparation de la requête
    for ( int i = 0; i < bindVars.size(); i++ ) {
        if ( i > 0 ) sql += ", ";
        sql += "?";
    }
    sql += ")";
     
    stmt = conn.preparedStatement(sql);
     
    // on bind...
    for ( int i = 0; i < bindVars.size() ; i++ ) {
        stmt.setString(i + 1, bindVars.get(i));
    }
     
    // et on éxécute
    stmt.execute...

    Voilà. Il y a peut-être une autre méthode, mais en tout cas celle-ci marche ;-)

    @+

Discussions similaires

  1. Réponses: 1
    Dernier message: 25/07/2013, 10h09
  2. Réponses: 1
    Dernier message: 09/07/2008, 11h47
  3. Réponses: 7
    Dernier message: 29/02/2008, 19h23
  4. Réponses: 3
    Dernier message: 18/05/2007, 21h24

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