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 :

Afficher la valeur d'un PreparedStatement avant son exécution


Sujet :

JDBC Java

  1. #1
    Membre chevronné Avatar de Mister Nono
    Homme Profil pro
    Ingénieur Mathématiques et Informatique
    Inscrit en
    Septembre 2002
    Messages
    2 232
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur Mathématiques et Informatique
    Secteur : Santé

    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 232
    Points : 1 897
    Points
    1 897
    Par défaut Afficher la valeur d'un PreparedStatement avant son exécution
    Voici la requête suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    String req = "INSERT INTO BASCULE VALUES (?, ?);";
    PreparedStatement stmt = conn.prepareStatement(req);
    stmt.setInt(1, Bascules.get(i).getNumero());
    stmt.setInt(2, Bascules.get(i).getAdresse());
     
    // AFFICHER STMT AVEC LES PARAMETRES
     
    stmt.executeUpdate();
    stmt.clearParameters();
    A des fin de debug, comment afficher la requête complète juste avant son exécution :
    par exemple avec un System.out.println(????); ou en mode debug avec eclipse ?

    Merci d'avance.
    La connaissance ne sert que si elle est partagée.
    http://ms2i.net

  2. #2
    Membre éclairé Avatar de g_rare
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    608
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 608
    Points : 683
    Points
    683
    Par défaut
    De souvenir, la possibilité de récupérer le SQL final depuis un PreparedStatement dépend du driver JDBC : par exemple le driver JDBC pour PostgreSQL le permet en mode debug (et je pense les autres "open source" aussi) mais pas le driver JDBC pour Oracle.
    " Jag blev dömd för fildelning och allt jag fick var en sketen t-shirt. " (tankafritt.nu)
    PAS DE REPONSE PAR MESSAGE PRIVE ! Penser au bouton Résolu en bas de la discussion...

  3. #3
    Membre chevronné Avatar de Mister Nono
    Homme Profil pro
    Ingénieur Mathématiques et Informatique
    Inscrit en
    Septembre 2002
    Messages
    2 232
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur Mathématiques et Informatique
    Secteur : Santé

    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 232
    Points : 1 897
    Points
    1 897
    Par défaut
    J'utilise Firebird 1.5 avec le driver org.firebirdsql.jdbc.FBDriver.

    A+
    La connaissance ne sert que si elle est partagée.
    http://ms2i.net

  4. #4
    Membre éclairé Avatar de g_rare
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    608
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 608
    Points : 683
    Points
    683
    " Jag blev dömd för fildelning och allt jag fick var en sketen t-shirt. " (tankafritt.nu)
    PAS DE REPONSE PAR MESSAGE PRIVE ! Penser au bouton Résolu en bas de la discussion...

  5. #5
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Août 2013
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2013
    Messages : 2
    Points : 0
    Points
    0
    Par défaut afficher contenu requête
    Il y a un moyen simple de résoudre ce problème : c'est de procéder par concaténation plutôt qu'en utilisant le requete.setString :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String req = "INSERT INTO maTable VALUES (" + monObjet.getVar1() + "," + monObjet.getVar2() + ... + ")" ;

  6. #6
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Citation Envoyé par MichelHHH Voir le message
    Il y a un moyen simple de résoudre ce problème : c'est de procéder par concaténation plutôt qu'en utilisant le requete.setString :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String req = "INSERT INTO maTable VALUES (" + monObjet.getVar1() + "," + monObjet.getVar2() + ... + ")" ;
    On utilise PreparedStatement pour éviter les injections Sql et des autres valeurs ayant des caractères comme les singles quote (').
    Ta méthode est à déconseiller.

    A+.

  7. #7
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Pourquoi tu n'affiche pas simplement les paramètres dans une ligne à part?

    Avec statement.getParameterMetaData() tu as tout en main pour récupérer ces infos (sur certains drivers, cette information n'est disponible qu'après l'executeUpdate)

Discussions similaires

  1. Réponses: 2
    Dernier message: 11/02/2015, 18h14
  2. Réponses: 4
    Dernier message: 05/03/2012, 13h54
  3. [AC-2003] Affecter une valeur nulle à un entier avant l'exécution de la requête
    Par flet le kid dans le forum VBA Access
    Réponses: 4
    Dernier message: 23/06/2009, 18h17
  4. afficher une valeur en rouge selon son signe
    Par arkorrigan dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 28/05/2008, 17h54
  5. [RegEx] Afficher le chemin des balises xml avant chaque valeurs
    Par Barney06 dans le forum Langage
    Réponses: 5
    Dernier message: 13/02/2008, 19h54

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