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 :

erreur synthaxe sql


Sujet :

JDBC Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 99
    Par défaut erreur synthaxe sql
    Bonjour,
    J’essaie d’insérer des données dans ma BD , la connexion est bonne mais quand j’exécute le code une exception est levée car la syntaxe est mauvaise mais je ne comprend pas pourquoi si vous pouviez m'indiquer l'erreur :/
    Merci d'avance
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "INSERT INTO client VALUES('anthony@mail.fr','nom','prenom','anée','M','France','ville','adresse','CP','motPasse'")

  2. #2
    Membre expérimenté
    Homme Profil pro
    Développeur Java
    Inscrit en
    Août 2007
    Messages
    197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Août 2007
    Messages : 197
    Par défaut
    salut,
    ça doit venir de la parenthèse à la fin

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "INSERT INTO client VALUES('anthony@mail.fr','nom','prenom','anée','M','France','ville','adresse','CP','motPasse')"

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 99
    Par défaut
    merci beaucoup mais en faite il doit y avoir une autre erreur car malgré ma correction lors de la compilation j'obtiens cette erreur :
    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
    Exception in thread "main" com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '"INSERT INTO client (mail,nom,prenom,age,sexe,pays,ville,adresse,cp,password) VA' at line 1
    	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
    	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    "INSERT INTO client (mail,nom,prenom,age,sexe,pays,ville,adresse,cp,password) VALUES('palmieri.anthony@hotmail.fr','Palmieri','Anthony','1991','M','France','Contes','191 montée du serre','06390','motPasse')"	at java.lang.reflect.Constructor.newInstance(Constructor.java:525)
    	at com.mysql.jdbc.Util.handleNewInstance(Util.java:409)
    	at com.mysql.jdbc.Util.getInstance(Util.java:384)
    	at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1054)
    	at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3566)
    	at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3498)
    	at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1959)
    	at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2113)
    	at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2562)
    	at com.mysql.jdbc.StatementImpl.executeUpdate(StatementImpl.java:1664)
    	at com.mysql.jdbc.StatementImpl.executeUpdate(StatementImpl.java:1583)
    	at javaapplication1.Client.insertBase(Client.java:99)
    	at javaapplication1.JavaApplication1.main(JavaApplication1.java:18)
    Java Result: 1
    BUILD SUCCESSFUL (total time: 0 seconds)
    voila mon code
    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
    27
    28
    29
    package javaapplication1;
     
    import java.sql.*;
     
    public class JavaApplication1 {
     
        public static void main(String[] args) throws Exception {
           Connection cnx = null;
            Class.forName("com.mysql.jdbc.Driver");
            cnx = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/mabase", "root", "anthony1991");
            Statement req = cnx.createStatement();
            Statement b = cnx.createStatement();
            ResultSet rs = req.executeQuery("select * FROM client");
            Client clt = new Client("palmieri.anthony@hotmail.fr,Palmieri,Anthony,1991,M,France,Contes,191 montée du serre,06390,motPasse");
        String requete="INSERT INTO Client VALUES('";
     
            System.out.println(clt);
        clt.insertBase(cnx,b);
          while (rs.next()) 
           {
                System.out.println(rs.getString(1));
    rs.close();}
     
    ResultSet rx = req.executeQuery("show tables");
           while(rx.next()){
                   System.out.println(rx.getString(1));
            }
        }        
    }
    et la méthode présente dans la classe client
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    public void insertBase(Connection cnx,Statement req) throws SQLException{
               String requete="\"INSERT INTO client (mail,nom,prenom,age,sexe,pays,ville,adresse,cp,password) VALUES('";
                StringBuilder sb = new StringBuilder(requete);
                sb.append(this.mail).append("\',\'");sb.append(this.nom).append("\',\'");sb.append(this.prenom).append("\',\'");sb.append(this.age).append("\',\'");sb.append(this.sexe).append("\',\'");sb.append(this.pays).append("\',\'");sb.append(this.ville).append("\',\'");sb.append(this.adresse).append("\',\'");sb.append(this.codePostal).append("\',\'");sb.append(this.motDePasse).append("\')\"");
                System.out.print(sb.toString());
                req.executeUpdate(sb.toString());
    merci d'avance. J'ai lu que cela pouvais venir d'une erreur de version mais je ne pense pas vu que je fonctionne sur NetBeans et que mes requêtes SQL fonctionnent.
    Merci d'avance pour votre aide

  4. #4
    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
    Par défaut
    Bonjour,

    String requete="\"INSERT INTO client (mail,nom,prenom,age,sexe,pays,ville,adresse,cp,password) VALUES('";
    Tu ne dois pas mettre les requêtes dans des doubles quotes.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String requete="INSERT INTO client (mail,nom,prenom,age,sexe,pays,ville,adresse,cp,password) VALUES('";
    A+.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 99
    Par défaut
    Merci beaucoup pour ta correction

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 99
    Par défaut
    j'ai un nouveau problème pour un getString une exception SQL est levé , à la suite d'un select , je ne comprend pas pourquoi mon résultat est vide , car lorsque je tape la commande simplement a la main il y a un résultat quand même :/
    Merci d'avance

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    public boolean ExistBase(Connection cnx, String ValueMail, Statement req) throws SQLException {
            String requete = "SELECT * FROM Client WHERE mail='ValueMail'";
            ResultSet kx = req.executeQuery(requete);
            String v = kx.getString("Mail");
            System.out.println(v);
            //if ((rs.getString("mail")).equals(ValueMail)) {
            kx.close();
            return true;
            //} else {
            //  req.close();
            // return false;
            //}
        }
    }
    mon main
    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
     
    public class JavaApplication1 {
     
        public static void main(String[] args) throws Exception {
           Connection cnx = null;
            Class.forName("com.mysql.jdbc.Driver");
            cnx = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/mabase", "root", "anthony1991");
            Statement req = cnx.createStatement();
            Statement b = cnx.createStatement();
            Statement a = cnx.createStatement();
     
            Client clt = new Client("testGetString,Palmieri,Anthony,1991,M,France,Contes,191 montée du serre,06390,motPasse");
     
    if(clt.ExistBase(cnx, "zaz", b)==true){
     
            System.out.println("goooood");}
     
    }     
        }

Discussions similaires

  1. Réponses: 5
    Dernier message: 12/12/2005, 13h13
  2. Réponses: 10
    Dernier message: 26/01/2005, 19h48
  3. [CE10 Pro] Erreur Connexion SQL pour etats publiés
    Par L.nico dans le forum Connectivité
    Réponses: 1
    Dernier message: 09/12/2004, 17h16
  4. catch des erreurs dans SQL+
    Par lalystar dans le forum Oracle
    Réponses: 2
    Dernier message: 21/09/2004, 15h17
  5. message d'erreur "Microsoft SQL-DMO"
    Par tachi dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 17/08/2004, 11h47

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