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 requête sur paramètre null


Sujet :

JDBC Java

  1. #1
    Membre expert
    Avatar de ®om
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 815
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 815
    Points : 3 080
    Points
    3 080
    Par défaut PreparedStatement et requête sur paramètre null
    Salut,

    Je voudrais en JDBC exécuter une requête du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select * from matable where unparametre=?
    Mais en fait selon que le paramètre soit null ou non, en sql direct on utilise 2 requêtes différentes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select * from matable where unparametre=2
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select * from matable where unparametre is null
    Comment gérer ça en JDBC, pour générer le "is null" et supprimer le '=' de ma requête?

    Je suis obligé de gérer ça manuellement avec 2 preparedstatement différents?

    Merci de votre aide.

  2. #2
    Membre expert
    Avatar de natha
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 346
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 346
    Points : 3 083
    Points
    3 083
    Par défaut
    Oui, 2 prepared statements différents.

    Nous on utilise un constructeur de requêtes where, ça permet de ne pas trop se poser de questions vis à vis des clauses différentes.
    Comment ça ? La réponse à ton problème n'est ni dans la faq, ni dans les tutos, ni dans sources ??? Etonnant...
    De la bonne manière de poser une question (et de répondre).
    Je ne fais pas de service par MP. Merci (...de lire les règles...).
    Ma page dvp.com

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    41
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2008
    Messages : 41
    Points : 37
    Points
    37
    Par défaut
    Bonjour,
    Je ne sais pas si j'ai trés bien compris ta question mais tu peux faire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    StringBuffer sbfQuery = new StringBuffer();
    sbfQuery.append("select * from matable where unparametre="nom_du_champ"");
    PreparedStatement prepSmt = conn.prepareStatement(sbfQuery.toString());
    ResultSet rs = prepSmt.executeQuery();
    while (rs.next()) {
                            String toto= rs.getString("nom_du_champ") != null ? rs
                                                    .getString("nom_du_champ") : "";
    }
    prepSmt.close();
    Et là tu mets ce que tu veux dans ta condition

Discussions similaires

  1. [Toutes versions] Faire en VBA une requête sur une requête paramétrée
    Par guidav dans le forum VBA Access
    Réponses: 3
    Dernier message: 15/02/2012, 17h10
  2. [AC-2007] Erreur sur paramètres de requête SQl
    Par kek's dans le forum Access
    Réponses: 2
    Dernier message: 28/09/2011, 11h38
  3. Requête sur paramètre valeurs multiples
    Par n.amavic dans le forum Oracle
    Réponses: 11
    Dernier message: 20/06/2011, 18h03
  4. Requête sur table liée non nulle
    Par MistyMan dans le forum Requêtes
    Réponses: 4
    Dernier message: 06/02/2009, 12h44
  5. Réponses: 5
    Dernier message: 06/01/2007, 04h48

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