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 SQL avec java


Sujet :

JDBC Java

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 31
    Points : 25
    Points
    25
    Par défaut Erreur SQL avec java
    Bonjour tout le monde!
    Voilà j'ai un problème pour accéder à mes informations dans la base de données.
    Voilà l'erreur java provoquée par rapport à ma requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Exception in thread "AWT-EventQueue-0" org.h2.jdbc.JdbcSQLException: Syntax error in SQL statement SELECT * FROM STRUCTURE INNER JOIN DOSSIER USING([*]IDSTRUCTURE) WHERE IDDOSSIER=1; ; SQL statement:
    SELECT * FROM STRUCTURE INNER JOIN DOSSIER using(IDSTRUCTURE) WHERE IDDOSSIER=1; [42000-68]
    et voici ma requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     sql = "SELECT * FROM STRUCTURE INNER JOIN DOSSIER using(IDSTRUCTURE) WHERE IDDOSSIER="+idDossier+";";
    Quelque chose vous alerte? parceque moi non...
    SVP aidez moi.

  2. #2
    in
    in est déconnecté
    Membre expérimenté Avatar de in
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 612
    Points : 1 718
    Points
    1 718
    Par défaut
    Il ne faut pas mettre de ; à la fin de ta requete.

    De plus tu devrais utiliser un preparedStatement. Il gèrera tout seul les éventuels caractères spéciaux que peux contenir iddossier ...
    "If email had been around before the telephone was invented, people would have said, 'Hey, forget email! With this new telephone invention I can actually talk to people!"

    Besoin d'une nouvelle méthode pour développer ? -> http://www.la-rache.com/

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 31
    Points : 25
    Points
    25
    Par défaut Et pourtant...
    Pourtant même en testant de cette façon j'ai la même erreur.
    C'est ça le problème...

    sql = "SELECT * FROM STRUCTURE INNER JOIN DOSSIER using(IDSTRUCTURE) WHERE IDDOSSIER="+idDossier+" ";

    Une autre idée peut être?
    En tout cas merci du conseil pour preparedStatement je vais le tester.

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

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Points : 9 529
    Points
    9 529
    Billets dans le blog
    1
    Par défaut
    C'est la requête qui me semble suspecte, j'aurais mis :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    
    "SELECT * FROM STRUCTURE a INNER JOIN DOSSIER b 
    on a.IDDOSSIER=b.IDDOSSIER
    WHERE a.IDDOSSIER="+idDossier
    (en supposant que la colonne de liaison dans STRUCTURE soit "IDDOSSIER" également)

    Sinon, effectivement, il vaudrait mieux utiliser un PreparedStatement...
    Du coup, ce serait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    PreparedStatement pstmt = connection.prepareStatement("select * from STRUCTURE a join DOSSIER b on a.IDDOSSIER = b.IDDOSSIER where a.IDDOSSIER=?");
    pstmt.setInt(1, leNumeroDossier);
    A+
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 31
    Points : 25
    Points
    25
    Par défaut j'essaye
    hum hum
    Oui alors je vais suivre tes conseils.
    J'espère que ça va marcher.
    Je te remercie bcp pour ton aide car y a un peu panique à bord^^

  6. #6
    in
    in est déconnecté
    Membre expérimenté Avatar de in
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 612
    Points : 1 718
    Points
    1 718
    Par défaut
    Ou si tu ne veux vraiment pas de prapredstatement, met les quotes autour de ta chaine :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    IDDOSSIER='"+idDossier+"'"
    "If email had been around before the telephone was invented, people would have said, 'Hey, forget email! With this new telephone invention I can actually talk to people!"

    Besoin d'une nouvelle méthode pour développer ? -> http://www.la-rache.com/

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

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Points : 9 529
    Points
    9 529
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par in Voir le message
    Ou si tu ne veux vraiment pas de prapredstatement, met les quotes autour de ta chaine :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    IDDOSSIER='"+idDossier+"'"
    Encore faudrait-il que idDossier soit une chaîne de caractères
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  8. #8
    in
    in est déconnecté
    Membre expérimenté Avatar de in
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 612
    Points : 1 718
    Points
    1 718
    Par défaut
    Citation Envoyé par OButterlin Voir le message
    Encore faudrait-il que idDossier soit une chaîne de caractères
    C'est clair, je sais pas pourquoi, j'avais cru voir que c'était une chaine ....
    "If email had been around before the telephone was invented, people would have said, 'Hey, forget email! With this new telephone invention I can actually talk to people!"

    Besoin d'une nouvelle méthode pour développer ? -> http://www.la-rache.com/

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

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Points : 9 529
    Points
    9 529
    Billets dans le blog
    1
    Par défaut
    Bonne sieste !
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  10. #10
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 31
    Points : 25
    Points
    25
    Par défaut hum hum
    Merci pour vos réponses je pense effectivement que c'est une histoire de quote... je teste ça et ça devrait être résolu... enfin j'espère^^

  11. #11
    in
    in est déconnecté
    Membre expérimenté Avatar de in
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 612
    Points : 1 718
    Points
    1 718
    Par défaut
    Citation Envoyé par javass Voir le message
    Merci pour vos réponses je pense effectivement que c'est une histoire de quote
    Utiliser un preparedStatement évite ce genre de souci ...
    "If email had been around before the telephone was invented, people would have said, 'Hey, forget email! With this new telephone invention I can actually talk to people!"

    Besoin d'une nouvelle méthode pour développer ? -> http://www.la-rache.com/

  12. #12
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 31
    Points : 25
    Points
    25
    Par défaut
    J'ai testé et c'était une erreur de quote.
    Vous auriez pas un bouquin ou des liens de site Internet pour ce genre d'erreurs.
    Je perds un temps fou chercher d'où viennent ces erreurs et ce qu'elles veulent dire.
    Je pense bien sûr à la javadoc dans un premier temps mais j'aimerai trouver qq chose de plus conviviale.
    Je galère vraiment beaucoup dans ces accès à la base de données.

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

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Points : 9 529
    Points
    9 529
    Billets dans le blog
    1
    Par défaut
    Ce site est une mine d'information...

    http://java.developpez.com/faq/jdbc/

    A+
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

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

Discussions similaires

  1. Connection et requete sql avec java
    Par martos dans le forum NetBeans
    Réponses: 8
    Dernier message: 28/08/2007, 21h57
  2. SQL avec JAVA
    Par Madame_de_Fontenay dans le forum Installation
    Réponses: 5
    Dernier message: 09/01/2007, 19h12
  3. Récupérer une erreur SQL avec TIBDataSet
    Par cgone dans le forum Bases de données
    Réponses: 3
    Dernier message: 25/10/2006, 00h00
  4. ERREUR UPDATE Avec java et oracle
    Par gloglo dans le forum JDBC
    Réponses: 7
    Dernier message: 20/10/2006, 09h35
  5. Erreur SQL avec SELECT
    Par matt0749 dans le forum Débuter
    Réponses: 15
    Dernier message: 17/10/2006, 13h04

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