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 :

[JDBC] Variables inserées dans l'instruction INSERT INTO


Sujet :

JDBC Java

  1. #1
    Membre expérimenté Avatar de slim
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2002
    Messages
    938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Décembre 2002
    Messages : 938
    Points : 1 337
    Points
    1 337
    Par défaut [JDBC] Variables inserées dans l'instruction INSERT INTO
    Bonjour à tous,

    j'utilise des variables de type String, int etc. que je voudrais integrer dans une instruction SQL Insert into. mais je connais pas la syntaxe pour inserer des variables et non des valeurs.


    Mon code est le suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    private static numClient;
    private static nomClient;
    [...]
    numClient = 4521;
    nomClient ="M. Developpez";
    /* je voudrais inserer numClient et nomClient dans l'instruction SQL.*/
    ResultSet curseur = etat.executeQuery("INSERT INTO CLIENTS
     VALUES(/* ? ? */)");
    Merci beaucoup !!
    Faites une recherche sur le forum et/ou sur internet et lisez la doc officielle avant de poser une question svp.
    et n'oubliez pas de lire les FAQ !
    FAQ Java et les cours et tutoriels Java
    Doc JAVA officielle
    AngularJS 1.x
    Angular 2

    Do it simple... and RTFM !

  2. #2
    Membre chevronné
    Avatar de afrikha
    Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    1 600
    Détails du profil
    Informations personnelles :
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2005
    Messages : 1 600
    Points : 2 208
    Points
    2 208
    Par défaut
    je ne comprends ce que tu veux faire, tu veux insérer quoi dans la base de données ?


    Mes publications
    Lisez
    Les régles du forum
    Pensez au bouton

  3. #3
    Membre expérimenté Avatar de slim
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2002
    Messages
    938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Décembre 2002
    Messages : 938
    Points : 1 337
    Points
    1 337
    Par défaut
    je veux mettre numClient et nomClient au lieu de leur valeur, et ce sont des variables (float et String)

    Si je voulais inserer des valeur, j'aurais fais ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ResultSet curseur = etat.executeQuery("INSERT INTO CLIENTS VALUES ('4521', 'M. Developpez')");
    mais là, je veux mettre le nom des variables au lieu des valeurs. En les saisissant, il me les souligne en me disant que la syntaxe est incorrecte.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ResultSet curseur = etat.executeQuery("INSERT INTO CLIENTS VALUES (numClient, nomClient)");
    Merci
    Faites une recherche sur le forum et/ou sur internet et lisez la doc officielle avant de poser une question svp.
    et n'oubliez pas de lire les FAQ !
    FAQ Java et les cours et tutoriels Java
    Doc JAVA officielle
    AngularJS 1.x
    Angular 2

    Do it simple... and RTFM !

  4. #4
    Membre chevronné
    Avatar de afrikha
    Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    1 600
    Détails du profil
    Informations personnelles :
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2005
    Messages : 1 600
    Points : 2 208
    Points
    2 208
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ResultSet curseur = etat.executeQuery("INSERT INTO CLIENTS VALUES ("+numClient+","+ nomClient+")");
    N'oublie pas le tag résolu


    Mes publications
    Lisez
    Les régles du forum
    Pensez au bouton

  5. #5
    Membre chevronné
    Homme Profil pro
    Dév. Java & C#
    Inscrit en
    Octobre 2002
    Messages
    1 413
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Dév. Java & C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 413
    Points : 1 993
    Points
    1 993
    Par défaut
    Commentaire

    ATTENTION avec le code de afrikha, ton instruction contient un bug.

    Suppose que la variable nomClient contient des apostrophes, qu'arrive-t-il à ton interrogatioon SQL?

    Il est tjrs préférable d'utiliser un PreparedStatement (surtout si tu travailles avec une BD Oracle).
    Bien le bonjour chez vous
    Jowo

  6. #6
    Membre chevronné
    Avatar de afrikha
    Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    1 600
    Détails du profil
    Informations personnelles :
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2005
    Messages : 1 600
    Points : 2 208
    Points
    2 208
    Par défaut
    Pourquoi les PreparedStatement permettent de contourner le problème ?


    Mes publications
    Lisez
    Les régles du forum
    Pensez au bouton

  7. #7
    Membre chevronné
    Homme Profil pro
    Dév. Java & C#
    Inscrit en
    Octobre 2002
    Messages
    1 413
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Dév. Java & C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 413
    Points : 1 993
    Points
    1 993
    Par défaut
    Parce que les méthodes setXXX d'un PreparedStatement s'occupent d'effectuer les conversions nécessaires (Exemple: les échappements des strings).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    PreparedStatement insertClient = con.prepareStatement( 
          "INSERT INTO CLIENTS VALUES (?, ?);
    insertClient.setInt(1, numClient);
    insertClient.setString(2, nomClient);
    Bien le bonjour chez vous
    Jowo

  8. #8
    Membre chevronné
    Avatar de afrikha
    Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    1 600
    Détails du profil
    Informations personnelles :
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2005
    Messages : 1 600
    Points : 2 208
    Points
    2 208
    Par défaut
    Et si je comprends bien, avec les prepared statment il n'y a pas de caracteres interdits pour les string ?
    qu'en est-il des procédures stockées ?

    Merci


    Mes publications
    Lisez
    Les régles du forum
    Pensez au bouton

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

Discussions similaires

  1. [AC-2007] Erreur de syntaxe dans l'instruction INSERT INTO
    Par DébutantAccess dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 28/02/2013, 18h45
  2. OleDbException -{"Erreur de syntaxe dans l'instruction INSERT INTO."}
    Par daniel.moreda dans le forum Framework .NET
    Réponses: 1
    Dernier message: 27/09/2011, 16h38
  3. caractère ' (keyascii=39) dans une instruction "INSERT INTO"
    Par melancolie dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 23/04/2011, 14h55
  4. Erreur de syntaxe dans l'instruction INSERT INTO
    Par doolar dans le forum Bases de données
    Réponses: 3
    Dernier message: 04/05/2008, 15h37
  5. Erreur de syntaxe dans l'instruction INSERT INTO
    Par logiciel_const dans le forum Bases de données
    Réponses: 8
    Dernier message: 19/03/2008, 10h57

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