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 :

Récupération valeurs d'une requête


Sujet :

JDBC Java

  1. #1
    Membre régulier
    Inscrit en
    Mai 2005
    Messages
    364
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 364
    Points : 120
    Points
    120
    Par défaut Récupération valeurs d'une requête
    Bonjour,

    J'ai une requête qui me renvoit plusieurs lignes de résultats, et j'aimerais mettre ces valeurs dans une hasmap, hashmap que j'ajoute à un vector à chaque lignes renvoyées.

    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
    this.setWhereClause("essai IN ("+ select1+")" +
        "AND essai2 IN ("+select2+")");
        System.out.println("Requête: " + this.getQuery());
     
     
        executeQuery();
        int n = getRowCount();
     
        Vector vecteur = new Vector();
        HashMap hash = new HashMap();
     
        for (int i=0 ; i<n ; i++){
     
        hash.put("1", (String) next().getAttribute(0));
        hash.put("2", (String) next().getAttribute(1));
        hash.put("3", (String) next().getAttribute(2));
     
        vecteur.add(hash);
    }
    Le prob est que j'ai un java.lang.NullPointerException. Le prob est le next().getAttribute...

    J'en déduit que je réupère mal les valeurs. Comment donc les récupérér correctement ??

    Merci de votre aide

  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
    Citation Envoyé par bobic
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
     
        for (int i=0 ; i<n ; i++){
     
        hash.put("1", (String) next().getAttribute(0));
        hash.put("2", (String) next().getAttribute(1));
        hash.put("3", (String) next().getAttribute(2));
     
     
    }
    En fait le next passe à l'enregistrement suivant. Je ne pense pas que c'est le traitement que tu souhaites effectuer ...

    regarde la FAQ jdbc pour une réponse détaillée et propre pour le parcours des enregistrements
    "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
    Membre régulier
    Inscrit en
    Mai 2005
    Messages
    364
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 364
    Points : 120
    Points
    120
    Par défaut
    merci,

    en fait, mon prob est que mes requêtes sont des requêtes "préparées"
    via JDevelopper...

    Ainsi, ma classe est ainsi:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
     
    public void maclass(){
     
    setWhereClause("col1 IN ("+ select1+")" +
        "col2 IN ("+select2+")");
         executeQuery();
    }
    et je ne sais pas comment intégrer ce qu'il me faut dans ce type de cas...

  4. #4
    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
    Bon déjà ... qu'est ce que tu veux faire exactement. Je suis un peu embrouillé là !

    Et meme ton code je capte pas trop

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    for (int i=0 ; i<n ; i++){
     
        hash.put("1", (String) next().getAttribute(0));
        hash.put("2", (String) next().getAttribute(1));
        hash.put("3", (String) next().getAttribute(2));
    le next tu le fais sur un ResultSet je suppose ?
    Et la boucle elle sert à quoi là ? Le i je veux dire, où t'es-t'il utile ?

    Si c'est un resultSet sur lequel tu fais next (enfin que tu veux parcourir) essaie plutot un truc du style

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    int i=0;
    while(resultset.next()){
        hash.put(i.toString(),resultset.getObject(i);
        vecteur.add(hash);    // met bon je ne pense pas que ce soit ça que tu veuille faire ??
    mais bon explique ce que tu veux parce que là ...
    "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/

Discussions similaires

  1. Réponses: 1
    Dernier message: 01/10/2010, 18h07
  2. [SQL] Récupération de Valeur d'une requête
    Par blackstreet dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 27/12/2007, 12h37
  3. [PEAR] Récupération résultat d'une requête
    Par lodan dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 01/07/2006, 15h54
  4. passer une valeur d'une requête a une table
    Par LesLemmings dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 09/06/2006, 14h13
  5. Récupération valeur d'une propriété type TStrings
    Par Stéphane Vaillant dans le forum Langage
    Réponses: 2
    Dernier message: 01/03/2003, 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