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 :

Vérifier la syntaxe d'une requêté SQL


Sujet :

JDBC Java

  1. #1
    Membre régulier
    Femme Profil pro
    Etudiante
    Inscrit en
    Avril 2012
    Messages
    203
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations professionnelles :
    Activité : Etudiante

    Informations forums :
    Inscription : Avril 2012
    Messages : 203
    Points : 85
    Points
    85
    Par défaut Vérifier la syntaxe d'une requêté SQL
    Bonjour,

    j'ai un problème au niveau de ces lignes dans mon code java :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
                String[] dt = date.split("-"); //tableau de trois cases
    		   try {
    			   rs1 = st1.executeQuery("SELECT jour FROM ratio_stk_kg_t WHERE  idTableau IN"+ 
    						"(SELECT idTableau FROM tableaux WHERE idFichier IN"+
    							"(SELECT idFichier FROM fichiers WHERE dateFichier LIKE `%-'"+dt[1]+"'-%`))");
    			   while(rs1.next()){
                                                        .
                                                        .
                                                        .
    l'erreur est comme suit : Unknown column '%-'07'-%' in 'where clause'

  2. #2
    Membre actif
    Homme Profil pro
    Développeur Java/JavaEE
    Inscrit en
    Août 2014
    Messages
    194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur Java/JavaEE

    Informations forums :
    Inscription : Août 2014
    Messages : 194
    Points : 290
    Points
    290
    Par défaut
    Bonjour,

    Je pense qu'il sont à cause des simples cotes qui entoure les doubles cotes
    essai de faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     rs1 = st1.executeQuery("SELECT jour FROM ratio_stk_kg_t WHERE  idTableau IN"+ 
    						"(SELECT idTableau FROM tableaux WHERE idFichier IN"+
    							"(SELECT idFichier FROM fichiers WHERE dateFichier LIKE `%-"+dt[1]+"-%`))");
    Je te conseil encore de faire mieux comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
     
    PreparedStatement pstmt = (PreparedStatement) conn.prepareStatement("SELECT jour FROM ratio_stk_kg_t WHERE  idTableau IN"+ 
    						"(SELECT idTableau FROM tableaux WHERE idFichier IN"+
    							"(SELECT idFichier FROM fichiers WHERE dateFichier LIKE ?))");
    			pstmt.setString(1, Ton_parametre);
    ResultSet rs = pstmt.executeQuery();
    			while (rs.next()) {
    				...
    			}

  3. #3
    Membre régulier
    Femme Profil pro
    Etudiante
    Inscrit en
    Avril 2012
    Messages
    203
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations professionnelles :
    Activité : Etudiante

    Informations forums :
    Inscription : Avril 2012
    Messages : 203
    Points : 85
    Points
    85
    Par défaut
    Je tiens d'abord à te remercier Maîn pour ta réponse , j'ai essayé d'enlever les côtes mais ça marche pas , ça donne la même erreur
    Unknown column '%-07-%' in 'where clause'

  4. #4
    Membre actif
    Homme Profil pro
    Développeur Java/JavaEE
    Inscrit en
    Août 2014
    Messages
    194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur Java/JavaEE

    Informations forums :
    Inscription : Août 2014
    Messages : 194
    Points : 290
    Points
    290
    Par défaut
    Même pour le deuxième exemple que je t'es passé ça donne la même erreur ??

  5. #5
    Membre régulier
    Femme Profil pro
    Etudiante
    Inscrit en
    Avril 2012
    Messages
    203
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations professionnelles :
    Activité : Etudiante

    Informations forums :
    Inscription : Avril 2012
    Messages : 203
    Points : 85
    Points
    85
    Par défaut
    j'ai essayé mais ça donne au niveau de cette ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    PreparedStatement pstmt = (PreparedStatement) conn.prepareStatement("SELECT jour FROM ratio_stk_kg_t WHERE  idTableau IN"+
    l'erreur suivante : : base.Connexion cannot be cast to java.sql.Connection

  6. #6
    Membre actif
    Homme Profil pro
    Développeur Java/JavaEE
    Inscrit en
    Août 2014
    Messages
    194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur Java/JavaEE

    Informations forums :
    Inscription : Août 2014
    Messages : 194
    Points : 290
    Points
    290
    Par défaut
    Bonjour,

    Ben ton problème c'est au niveau de tes cotes, si tu as remarqué tu ne met pas des cotes comme ça dois l'etre mais plutôt tu es entrain de mettre et ton compilateur est entrain de les voir comme colonne. Donc la solution c'est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    rs1 = st1.executeQuery("SELECT jour FROM ratio_stk_kg_t WHERE  idTableau IN"+ 
    						"(SELECT idTableau FROM tableaux WHERE idFichier IN"+
    							"(SELECT idFichier FROM fichiers WHERE dateFichier LIKE '%-"+dt[1]+"-%'))");

  7. #7
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Ouais enfin non, la solution c'est PreparedStatement. C'est pas parce qu'on n'a pas appris à s'en servir que c'est intelligent de s'en passer.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  8. #8
    Membre actif
    Homme Profil pro
    Développeur Java/JavaEE
    Inscrit en
    Août 2014
    Messages
    194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur Java/JavaEE

    Informations forums :
    Inscription : Août 2014
    Messages : 194
    Points : 290
    Points
    290
    Par défaut
    Je suis totalement d'accord, on connais tous les attaques par injection.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    Connection conn = getConnection(); // methode de connexion qui renvoi un Connection java.sql.Connection
    Statement stmt = (Statement) conn.createStatement();
     
    PreparedStatement pstmt = (PreparedStatement) conn.prepareStatement("SELECT jour FROM ratio_stk_kg_t WHERE  idTableau IN"+ 
    						"(SELECT idTableau FROM tableaux WHERE idFichier IN"+
    							"(SELECT idFichier FROM fichiers WHERE dateFichier LIKE ?");
     
    			pstmt.setString(1, tonParametre);
    			ResultSet rs = pstmt.executeQuery();
    while (rs.next()) {
    ...
    }

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

Discussions similaires

  1. Vérifier la syntaxe d'une requête SQL ?
    Par brolon dans le forum JDBC
    Réponses: 7
    Dernier message: 03/04/2009, 16h13
  2. problème de syntaxe avec une requête SQL
    Par funkyjul dans le forum Développement
    Réponses: 4
    Dernier message: 27/10/2008, 21h15
  3. [VS2005]Vérification de la syntaxe d'une requête SQL
    Par gassisprog dans le forum Windows Forms
    Réponses: 2
    Dernier message: 22/04/2008, 08h45
  4. Erreur de syntaxe dans une requête SQL
    Par Gabout dans le forum Requêtes et SQL.
    Réponses: 11
    Dernier message: 08/01/2008, 17h19
  5. Erreur de syntaxe dans une requête SQL
    Par amnesias dans le forum Langage SQL
    Réponses: 2
    Dernier message: 23/01/2007, 12h50

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