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 :

Pb requete sql update avec jdbc


Sujet :

JDBC Java

  1. #1
    Membre actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2008
    Messages
    132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2008
    Messages : 132
    Points : 290
    Points
    290
    Par défaut Pb requete sql update avec jdbc
    Bonjour a tous,

    Je suis novice dans jdbc, donc je vous demanderais un peu d'indulgence

    Mon souci est que (avec eclipse) je recois une erreur d'execution (erreur de syntaxe dans la requete sql ) sur une ligne de code de mon programme java avec jdbc et serveur MySQL. Le souci est que lorsque j'execute la meme requete dans la fenetre de commandes MySQL (MS-DOS), ma base de données est alimentée naturellement . Donc j'ai beau cherché sur tous les forums et tutoriels, je n'ai tjs rien pu trouver pour m'aider.

    voici la portion de code qui provoque l'erreur (sachant que tout le reste est nickel) vu qu'en l'enlevant, ou bien meme en la remplacant par une requete 'INSERT' par exemple, ca marche.
    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
     
    Statement st=null;
    try{
    st=dbcon.obtenirStatement();
    st.executeUpdate("UPDATE profil_membre" // la ligne provoquant l'erreur
    +"SET password='"+password+"', nom='"+nom+"',"
    +" prenom='"+prenom+"',date_de_naissance='"+date_de_naissance+"', ville='"+ville+"',"
    +"pays='"+pays+"',"mail='"+mail+"'"
    +"WHERE login='"+login+"'");
    }
     
    finally{if(st!=null)dbcon.FermerConnexion(st);}
     
    return profil;
    }//fin inscription
    Merci d'avance

  2. #2
    Membre chevronné Avatar de guigui5931
    Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2006
    Messages
    1 667
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 667
    Points : 2 232
    Points
    2 232
    Par défaut
    Tu peux nous donner l'erreur? Tu devrais mettre ta requete dans une chaine et la faire affiché pour voir quel est le problème. A première vue il manque un espace avant SET et avant WHERE.
    autant l'hiver éclate que l'hétéroclite
    le vrai geek c'est celui qui croit qu'il y a 1024 mètres dans un kilomètre

  3. #3
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 310
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 310
    Points : 9 522
    Points
    9 522
    Billets dans le blog
    1
    Par défaut
    Attention à l'injection avec cette méthode... et aux problèmes typiques (' dans une chaîne de caractères, les dates, etc...)

    Il faudrait passer par un PreparedStatement, autant prendre tout de suite de bonnes habitudes...
    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
     
    ...
    PreparedStatement pstmt = null;
    try
    {
        pstmt = connection.prepareStatement("update profil_membre set password = ?, nom=?, prenom=?, date_de_naissance=?, ville=?, pays=?, mail=? where login=?");
        pstmt.setString(1, password);
        pstmt.setString(2, nom);
        pstmt.setString(3, prenom);
        pstmt.setDate(4, date_de_naissance); // <--- une java.sql.Date
        pstmt.setString(5, pays);
        pstmt.setString(6, mail);
        pstmt.setString(7, login);
        pstmt.executeUpdate();
     
    }
    catch (Exception e)
    {
        ...
    }
    finally
    {
        // Nettoyage... 
        if (connection != null) connection.close();
    }
    ...
    A+
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  4. #4
    Membre actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2008
    Messages
    132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2008
    Messages : 132
    Points : 290
    Points
    290
    Par défaut
    Merci guigui5931, effectivement il manquait un espace devant "set" et "where" .

    Merci également pr tes conseils OButterlin.

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

Discussions similaires

  1. Problème avec requetes sql UPDATE
    Par moilou2 dans le forum Requêtes et SQL.
    Réponses: 17
    Dernier message: 08/07/2008, 15h42
  2. pb get avec requete sql update
    Par babafredo dans le forum ASP
    Réponses: 1
    Dernier message: 09/10/2007, 09h35
  3. [SQL] update avec decode
    Par jojo22222 dans le forum Oracle
    Réponses: 8
    Dernier message: 04/01/2006, 17h50
  4. [PL/SQL] update avec jointure
    Par Fox_magic dans le forum Oracle
    Réponses: 6
    Dernier message: 09/12/2004, 12h19
  5. Requete d'update avec concatenation !!
    Par chris92 dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 25/02/2004, 12h05

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