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

Langage Java Discussion :

problém d'itération sur un resultset


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté Avatar de aymen83
    Inscrit en
    Décembre 2007
    Messages
    271
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 271
    Par défaut problém d'itération sur un resultset
    Bonjour tout le monde
    je vous explique mon pb: j'essai d'extraire des données d'une base de données, ce que je fais c'est que j'extrait le nombre le nombre de table, les noms des tables et maintenant je veux extraire le nombe d'enregistrement de chaque table pour ça j'utilise des ArrayList mais ça ne me donne pas le résultat voulue
    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
     
    public ArrayList<Integer> getFeatureNumber() {
    		return featureNumber;
    	}
    	public void setFeatureNumber(ArrayList<Integer> featureNumber) {
    		this.featureNumber = featureNumber;
    	}
    	public ArrayList<Integer> retrieveFeatureNumbers(){
    		//int i=0;		
    		for(Iterator<String> itr = tablesName.iterator(); itr.hasNext();){//tablesName est un Arraylist contrenant les noms des tables
    			String name = (String)itr.next();
    			//System.out.println(name);
    		String query = "SELECT count(*) As num FROM "+name;
    		try {
    			Statement statement = connection.createStatement();
    			ResultSet rs = statement.executeQuery(query);
    			while(rs.next()){
     
    				int num = rs.getInt("num");
    				featureNumber.add(num);
    				setFeatureNumber(featureNumber);
    				System.out.println(featureNumber.toString());
    			}
    		} catch (SQLException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
    		//System.out.println("le nombre de table est:\t"+tablesNumber);
    		}
     
    		return featureNumber;
    	}

  2. #2
    Membre expérimenté
    Inscrit en
    Octobre 2007
    Messages
    311
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 311
    Par défaut
    Salut,

    Qu'entends-tu par "ça ne me donne pas le résultat voulu" ? Tu as une exception ? Le resultset est vide ?

    Ensuite, 2 petites remarques :
    - tu appelles la méthode setFeatureNumber dans ta boucle. Pourquoi ne pas attendre la fin de la boucle, histoire qu'elle soit remplie, avant de l'affecter ?
    - dans le code que tu fournis, tu ne fermes ni le resultset, ni le statement, ni la connexion.

  3. #3
    Membre expérimenté Avatar de aymen83
    Inscrit en
    Décembre 2007
    Messages
    271
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 271
    Par défaut
    En ce qui concerne la fermeture de finir l'essentiel du travail
    Pour le resultat, il soit vide soit quelque chose de se genre
    [1]
    [1,0]
    [1, 0,0]
    alors que normalement il doit être [1, 0, 0, 0]
    pour la setFeature.. je vais la corriger
    En faite Je contruit unCheckboxTreeViewer avec ces données avec les noeuds qui représenteent les tables et les sous noeud les enregistrement

  4. #4
    Membre expérimenté
    Inscrit en
    Octobre 2007
    Messages
    311
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 311
    Par défaut
    Le fait qu'il t'affiche 3 fois le contenu de la liste est normal puisque ton affichage se fait à chaque itération de ta boucle for. Ensuite, es-tu bien sûr d'avoir 4 tables dans ta liste tablesName ???

  5. #5
    Membre expérimenté Avatar de aymen83
    Inscrit en
    Décembre 2007
    Messages
    271
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 271
    Par défaut
    le résultat est te surprend? les tables sont vide il n'ya q'une seule avec 1 enregistrement je les utilise pour le test seulement
    j'ai écrit cette fonction pour extraire les données une à une mais l'output est vide
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    public int returnAttributes(){
    		int num = 0;
    		for(int i=0; i<featureNumber.size(); i++){
    			num = featureNumber.get(i);
    			System.out.println(num);
    		}
    		return num;
    	}

  6. #6
    Membre expérimenté
    Inscrit en
    Octobre 2007
    Messages
    311
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 311
    Par défaut
    Déjà, cette méthode est bizarre puisqu'elle ne retournera que la dernier élément de la liste.

    Ensuite, je ne comprends plus rien à ton problème...

    Si tu veux bien, dans ta méthode "retrieveFeatureNumbers()", décommente ta trace "System.out.println(name)" afin qu'on connaisse la liste de tes tables et mets une trace "System.out.println(num)" après le rs.getInt("num") pour voir si le resultset est valide ou pas. Poste le résultat affiché, ca aidera peut-etre à mieux comprendre

Discussions similaires

  1. Problème de onLoad sur un feed XML avec un itération.
    Par 20-a-box dans le forum ActionScript 1 & ActionScript 2
    Réponses: 0
    Dernier message: 23/07/2009, 16h15
  2. Problème de reqûete sur la date, année et mois en cours
    Par Jean-Marc dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 16/02/2004, 16h36
  3. [CR] Problème de sélection sur un champ date
    Par noluc dans le forum SAP Crystal Reports
    Réponses: 2
    Dernier message: 21/11/2003, 16h56
  4. Problème avec RDTSC sur K6-III
    Par le mage tophinus dans le forum x86 32-bits / 64-bits
    Réponses: 17
    Dernier message: 30/09/2003, 09h43
  5. problème de float sur SQL server 2000.
    Par fidji dans le forum MS SQL Server
    Réponses: 9
    Dernier message: 24/07/2003, 14h15

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