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

Java Discussion :

Requête & Java


Sujet :

Java

  1. #1
    Candidat au Club
    Inscrit en
    Octobre 2011
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Octobre 2011
    Messages : 2
    Par défaut Requête & Java
    slt,
    je veux savoir la syntaxe correcte de la requête SELECT suivante en java.
    j'ai essayé avec cette syntaxe mais une exception est générée

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    query=("SELECT KEY  from 'personne', 'client' where KEY='id1' AND personne.KEY=client.KEY) ");
    Quel est le problème avec cette syntaxe?

  2. #2
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Salut,


    Quel est l'exception ?


    a++

  3. #3
    Membre confirmé
    Inscrit en
    Octobre 2006
    Messages
    200
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 200
    Par défaut
    Citation Envoyé par fifoub Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    query=("SELECT KEY  from 'personne', 'client' where KEY='id1' AND personne.KEY=client.KEY) ");
    Lorsque tu fais ton SELECT KEY, à quel Key fais-tu référence ?

    Essaye ceci peut-être :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    query=("SELECT personne.KEY  from 'personne', 'client' where KEY='id1' AND personne.KEY=client.KEY) ");

  4. #4
    Membre confirmé
    Homme Profil pro
    Chef de projet, développeur .net
    Inscrit en
    Juin 2010
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Chef de projet, développeur .net
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2010
    Messages : 76
    Par défaut
    Citation Envoyé par Dark_TeToN Voir le message
    Lorsque tu fais ton SELECT KEY, à quel Key fais-tu référence ?

    Essaye ceci peut-être :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    query=("SELECT personne.KEY  from 'personne', 'client' where KEY='id1' AND personne.KEY=client.KEY) ");
    il faut spécifier pour celui la clause where aussi non?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    query=("SELECT personne.KEY  from 'personne', 'client' where personne.KEY='id1' AND personne.KEY=client.KEY) ");

  5. #5
    Membre confirmé
    Inscrit en
    Octobre 2006
    Messages
    200
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 200
    Par défaut
    Citation Envoyé par ElSpopo Voir le message
    il faut spécifier pour celui la clause where aussi non?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    query=("SELECT personne.KEY  from 'personne', 'client' where personne.KEY='id1' AND personne.KEY=client.KEY) ");
    Oui tout à fait ElSpopo ! Merci pour ce détail, il m'avait échappé ! J'avais vu rapidement que dans la 2ème condition du WHERE c'était bon mais j"ai omit la première

  6. #6
    Membre éclairé Avatar de pendoRa
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Mai 2007
    Messages
    317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2007
    Messages : 317
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    query=("SELECT personne.KEY  from 'personne', 'client' where personne.KEY='id1' AND personne.KEY=client.KEY ");
    Il n'y avait pas une parenthèse en trop à la fin ?

  7. #7
    Candidat au Club
    Inscrit en
    Octobre 2011
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Octobre 2011
    Messages : 2
    Par défaut
    Merci pour votre aide.

    mais quand j'ai voulu extraire la valeur de la requête SELECT en utilisant le code suivant ,une exception est lancée.
    le code pour extraire le résultat de la requête:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    ResultSet d=f.executeQuery(query);
     int i=1;
      Object c =d.getObject(i);
     System.out.println(c.toString());
    l'exception lancée:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    oct. 26, 2011 2:47:57 PM extract1.Client jButton3ActionPerformed
    Grave: null
    java.sql.SQLException
    	at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1055)
    	at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:956)
    	at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:926)
    	at com.mysql.jdbc.ResultSetImpl.checkRowPos(ResultSetImpl.java:815)
    	at com.mysql.jdbc.UpdatableResultSet.checkRowPos(UpdatableResultSet.java:226)
    	at com.mysql.jdbc.ResultSetImpl.getStringInternal(ResultSetImpl.java:5528)
    	at com.mysql.jdbc.ResultSetImpl.getString(ResultSetImpl.java:5448)

  8. #8
    Membre confirmé
    Homme Profil pro
    Chef de projet, développeur .net
    Inscrit en
    Juin 2010
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Chef de projet, développeur .net
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2010
    Messages : 76
    Par défaut
    Hmmm, je dis peut être une connerie, mais pour le result set, ça ne commencerais pas par 0 au lieu de 1.
    Sinon, je te conseillerais de plutôt récupérer un string qu'un objet et de récupérer sur le nom de la colonne plutôt que sur son numéro


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ResultSet d=f.executeQuery(query);
    String c =d.getString("KEY");
    System.out.println(c);

  9. #9
    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,

    Je pense que ton code est seulement pour un test, mais je te conseille d'utiliser un PreparedStatement pour la requête mais pas mettre directement la valeur à l'intérieur.

    A+.

  10. #10
    Membre éclairé
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2011
    Messages
    593
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2011
    Messages : 593
    Par défaut
    query=("SELECT personne.KEY from 'personne', 'client' where personne.KEY='id1' AND personne.KEY=client.KEY ");
    Je crois qu'il faut enlever les apostrophes des noms des tables.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    query=("SELECT personne.KEY  from personne, client where personne.KEY='id1' AND personne.KEY=client.KEY ");

  11. #11
    Membre expérimenté Avatar de Seb19
    Homme Profil pro
    Concepteur SOA
    Inscrit en
    Septembre 2005
    Messages
    217
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Deux Sèvres (Poitou Charente)

    Informations professionnelles :
    Activité : Concepteur SOA

    Informations forums :
    Inscription : Septembre 2005
    Messages : 217
    Par défaut
    Citation Envoyé par ElSpopo Voir le message
    Hmmm, je dis peut être une connerie, mais pour le result set, ça ne commencerais pas par 0 au lieu de 1.
    Le 1 ne correspond pas au début du resultSet mais au numéro de la colonne dans le select.

  12. #12
    Membre Expert
    Inscrit en
    Mai 2006
    Messages
    1 364
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 1 364
    Par défaut
    Un petit passage par la case tutorial/cours jdbc du driver concerné ne serait pas de trop parce que la, il y a beaucoup d'erreurs. Comme deja dit, il faut preciser a quelle table KEY appartient puisque d'apres la requete, il est dans les 2. Ensuite, apres recuperation du resultset, il faut faire rs.next() pour pointer sur le 1er enregistrement.

    Et +1 pour l'utilisation d'un prepared statement.

Discussions similaires

  1. Visualiser un rpt contenant des requêtes en java
    Par enuk24 dans le forum Connectivité
    Réponses: 0
    Dernier message: 26/08/2010, 09h32
  2. Requête http JAVA
    Par Kitiz dans le forum Débuter avec Java
    Réponses: 4
    Dernier message: 20/10/2009, 11h32
  3. Requête sql + java
    Par langar dans le forum JDBC
    Réponses: 9
    Dernier message: 14/05/2009, 10h18
  4. double requête en java
    Par kimlaw95 dans le forum JDBC
    Réponses: 1
    Dernier message: 01/04/2009, 11h51

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