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 :

[JDBC]Select Count(*)


Sujet :

JDBC Java

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    30
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Octobre 2005
    Messages : 30
    Points : 22
    Points
    22
    Par défaut [JDBC]Select Count(*)
    Bonjour à tous,

    Je commence à développer en java sous Eclipse et je viens déposer mon premier post sur ce forum. J'ai une erreur dans mon code, pourriez me dire si ma syntaxe est bonne svp?

    Select count(*)... en SQL retourne bien le resutat au format string?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
     
    //Requete SQL
    String requeteCompteIrisSansNumero = "SELECT COUNT(DISTINCT Id_Iris) AS Compteur_Iris FROM IRIS WHERE Id_Iris IN...
     
    //Execute ma requete
    ResultSet requete_compte = this.wrapperBDD.executerRequeteConsultation(requeteCompteIrisSansNumero);
     
    //Récupère le résultat de ma requete
    String scount_Iris = requete_compte.getString("Compteur_Iris");
     
    //Convertie un string en integer
    int icount_Iris = Integer.parseInt(scount_Iris);

  2. #2
    Membre expérimenté Avatar de BainE
    Inscrit en
    Mai 2004
    Messages
    1 327
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 1 327
    Points : 1 544
    Points
    1 544
    Par défaut
    c est koi l erreur retourné par eclipse ?

  3. #3
    NGY
    NGY est déconnecté
    Membre habitué
    Inscrit en
    Août 2002
    Messages
    137
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 137
    Points : 164
    Points
    164
    Par défaut Re: [Debutant] Prog Java et SQL
    Citation Envoyé par gogolak
    Select count(*)... en SQL retourne bien le resutat au format string?
    Et nan !
    C'est un int, donc fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    int icount_Iris = requete_compte.getInt("Compteur_Iris");

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    30
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Octobre 2005
    Messages : 30
    Points : 22
    Points
    22
    Par défaut
    En fait je dois faire qqle modif dans un géocodeur en java (40000 lignes..)

    Eclipse ne m'envoie pas d'erreur mais ne m'envoie pas où je veux lors de l'execution.

    Je vais essayer d'être clair,
    Je déclare mon résultat count en string car la fonction executerRequeteConsultation ne peut prendre en paramètre que des string. Cette fonction lance executeQuery qui ne prend aussi que des string en paramètres. Je voulais modifier la déclaration de cette fonction pour qu'elle accepte Double ou Integer mais je n'y ai pas accès -> Class File Editor. Du coup je veux récupèrer le chiffre de mon compteur en string avec les fonctions déjà implémentées et le convertir en entier aprés pour pouvoir faire un test dessus:
    if (icount_Iris == 1){

    J'espère que je n'ai pas été trop confu.

    Mes questions:
    Faut-il que je déclare requete_compte?
    Eclipse m'a conseillé de mettre ResultSet, à quoi ça sert exactement?
    Comment puis-je faire pour avoir accès au fichier .class et modifier la fonction executeQuery?

  5. #5
    Membre expérimenté Avatar de BainE
    Inscrit en
    Mai 2004
    Messages
    1 327
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 1 327
    Points : 1 544
    Points
    1 544
    Par défaut
    ben si t a une string en retour tu peu faire ton test
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if( maString.equals("1") )
    sinon Integer.ParseInt( taString ) devrai te rendre un int

  6. #6
    NGY
    NGY est déconnecté
    Membre habitué
    Inscrit en
    Août 2002
    Messages
    137
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 137
    Points : 164
    Points
    164
    Par défaut
    Ben c'est pas super clair ...

    En tout cas, je ne vois pas trop le rapport avec le fait qu'un select count retourne un int !
    Et que se passe-t-il si tu remplace les lignes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    //Récupère le résultat de ma requete
    String scount_Iris = requete_compte.getString("Compteur_Iris");
     
    //Convertie un string en integer
    int icount_Iris = Integer.parseInt(scount_Iris);
    par celle que je t'ai donné plus haut ?

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    30
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Octobre 2005
    Messages : 30
    Points : 22
    Points
    22
    Par défaut
    Et que se passe-t-il si tu remplace les lignes par celle que je t'ai donné plus haut ?
    pareil il ne continue pas l'execution normal du programme, il m'envoie je ne sais où.. C'est une usine à gaz ce programme, je déclare forfait..

    Merci pour la rapidité de vos réponses.

    Jérémy

  8. #8
    NGY
    NGY est déconnecté
    Membre habitué
    Inscrit en
    Août 2002
    Messages
    137
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 137
    Points : 164
    Points
    164
    Par défaut
    Ah ben non alors ! On ne déclare pas forfait au bout de 2 heures !!!

    Que vaut ta variable icount_Iris après le requete_compte.getInt("Compteur_Iris") ?

    Le problème c'est que l'on ne sait pas trop ce que fait this.wrapperBDD.executerRequeteConsultation.

    Peut-être aussi qu'il faut faire un next() :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     (...)
    //Execute ma requete
    ResultSet requete_compte = this.wrapperBDD.executerRequeteConsultation(requeteCompteIrisSansNumero);
    int icount_Iris = -1;
    if (requete_compte.next()) {
      // Recupere la valeur retourne par le count
      icount_Iris = requete_compte.getInt("Compteur_Iris");
    }
    else {
      System.out.print("Aucune donnee retournee par : '" + requeteCompteIrisSansNumero + "'");
    }
    System.out.print("Valeur de icount_Iris : " + icount_Iris);

  9. #9
    Membre à l'essai
    Inscrit en
    Juillet 2004
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 23
    Points : 20
    Points
    20
    Par défaut
    C'est ca, il faut faire un car tu commences à la position du resultset.

    Ca va marcher

  10. #10
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    30
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Octobre 2005
    Messages : 30
    Points : 22
    Points
    22
    Par défaut
    C'est ça, c'est le next qui me manqué!
    Dernière question, à quoi ça sert le .next()?

    Merci beaucoup à vous trois

  11. #11
    Membre du Club
    Profil pro
    Informaticien
    Inscrit en
    Septembre 2002
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Informaticien

    Informations forums :
    Inscription : Septembre 2002
    Messages : 69
    Points : 63
    Points
    63
    Par défaut
    Le next te permet d'avancer à la position suivante de ton curseur.

    Imagine que les résultats renvoyés par ta requete sont stockés dans un tableau. Tu te trouves avant le tableau (beforeFirst). Donc pour aller à la première cellule tu fait un next()


    Petit bonjour handballistique en passant.

  12. #12
    NGY
    NGY est déconnecté
    Membre habitué
    Inscrit en
    Août 2002
    Messages
    137
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 137
    Points : 164
    Points
    164
    Par défaut
    Dernière question, à quoi ça sert le .next()?
    Bouh le vilain, il n'a pas lu la JDBC (en particulier la pertie sur les ResultSet ) !

Discussions similaires

  1. CSV JDBC Select count(*)
    Par chebramdou dans le forum JDBC
    Réponses: 1
    Dernier message: 15/11/2011, 22h39
  2. [Java][debutant]select count(*) ne retourne rien !!
    Par Invité dans le forum SQL Procédural
    Réponses: 3
    Dernier message: 24/01/2007, 11h39
  3. mon select count(*) marche pas
    Par zorba49 dans le forum Langage SQL
    Réponses: 14
    Dernier message: 05/08/2005, 08h28
  4. [Performance] RecordCount ou select Count(champ) ?
    Par shwin dans le forum Requêtes et SQL.
    Réponses: 9
    Dernier message: 28/09/2004, 17h37
  5. résultat de " select count "
    Par marie253 dans le forum Bases de données
    Réponses: 3
    Dernier message: 17/06/2004, 12h07

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