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

Collection et Stream Java Discussion :

[DEBUTANTE] Pb avec une ArrayList et un Resultset


Sujet :

Collection et Stream Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    296
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 296
    Par défaut [DEBUTANTE] Pb d'une ArrayList et d'un Resultset
    salut,
    Merci de bien vouloir m'aider

    Dans cette classe, je dois faire un calcul permettant de calculer un nombre d'heures et pour le calculer, il me faut des informations de 2 tables différentes de ma BDD mySQL, en plus d'une info d'un annuaire LDAP.

    Alors j'ai procédé comme suit: j'apporte les infos dont j'ai besoins avec les différentes méthodes de ma classe ex: nbComp, nbService, InfoLdap et ensuite j'ai essayé de calculer le nb d'heures dont j'ai besoin.

    Mais j'ai un pb dans mon code, dans la méthode :

    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
    public int nbTotalDispo(int nbE,int nbC,int nbS,Hashtable info_inter) throws Exception
    	  {
    		int nbToD = 0;
    		int nb = 0;
    		int qntr ;
    		
    		qntr = (((Hashtable) info_inter.get("denis")).get( "quantitetempstravail" )).toInt() ;
    		
    		nb = (nbS+nbC)* qntr;
    		nbToD = nb - nbE;
    		
    		if (rs.next())
    			  nbE = rs.getInt("nbTotalDispo");
    		      rs.close();
    		      return nbToD; 
    	  }
    Je ne sais pas est ce que c'est juste de pouvoir passer en paramètre une Hashtable ?

    la quantite de travail est de type int et donc qd je met toInt, je ne sais pas prquoi j'ai une erreur?

    comment avoir la quantité de travail de tous les enseignants au lieu de seulement celle de DENIS ?

    Et enfin, j'ai des erreurs aussi dans le resultset car ce que je sais que le resultset sert à exécuter une requête et donc pour avoir un int je ne sais pas comment faire?

    le code de toute la classe est le suivant:

    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
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    import java.util.ArrayList;
    import java.util.Hashtable;
     
    import ldap.ldap;
    import my_sql.Mysql;
     
     
     
    public class NbTotalDispo { 
     
    	  public static int nbService(String titre,Mysql m) throws Exception { 
    	    int nbS  = 0;
    	    String requete = "SELECT st_nbHeuresService FROM statut WHERE st_id like '"+ titre +"'";
    	    ResultSet rs = m.query(requete);
    	    if (rs.next())
    	      nbS = rs.getInt("st_nbHeuresService");
    	    rs.close();
    	    return nbS; 
    	  }  
     
    	  public static int nbComp(String titre,Mysql m) throws Exception { 
    		    int nbC  = 0;
    		    String requete = "SELECT st_maxHeuresComp FROM statut WHERE st_id like '"+ titre +"'";
    		    ResultSet rs = m.query(requete);
    		    if (rs.next())
    		    	nbC = rs.getInt("st_maxHeuresComp");
    		    rs.close();
    		    return nbC; 
    		  } 
     
    	  public void InfoLdap()
    	  {
    		  ArrayList nomprof ;
    		  Mysql m=new Mysql();
     
    		  ldap objldap = new ldap( "login", "password" ) ;
     
     
    		  objldap.connectldap() ;
    		  Hashtable info_inter  = new Hashtable() ; 
    		  Hashtable res  = new Hashtable() ; 
     
    		  nomprof = m.NomProf() ;
     
    		  String[] attrIDs = {"statut","quantitetempstravail"}; 
     
    		  for( int i = 0 ; i < nomprof.size() ; i++ )
    		  {
     
    			  res = objldap.reseach( "uid", nomprof.get(i).toString(), attrIDs ) ;
     
     
    			  info_inter.put( nomprof.get(i ).toString(), res ) ;
    		  }
     
    	  }
     
    	  public static int nbEffectue(String Enseignant,String Module,Mysql m) throws Exception 
    	  {
    		  int nbE  = 0;
    		  String requete = "SELECT NbHeuresEffectuees FROM services " +
    		  "WHERE NomEnseignant= '"+Enseignant+"' and Module='"+Module+"'";
    		  ResultSet rs = m.query(requete);
    		  if (rs.next())
    			  nbE = rs.getInt("NbHeuresEffectuees");
    		      rs.close();
    		      return nbE; 
    		  } 
     
    	  public int nbTotalDispo(int nbE,int nbC,int nbS,Hashtable info_inter) throws Exception
    	  {
    		int nbToD = 0;
    		int nb = 0;
    		int qntr ;
     
     
    		qntr = (((Hashtable) info_inter.get("denis")).get( "quantitetempstravail" )).toInt() ;
     
    		nb = (nbS+nbC)* qntr;
    		nbToD = nb - nbE;
     
    		if (rs.next())
    			  nbE = rs.getInt("nbTotalDispo");
    		      rs.close();
    		      return nbToD; 
    	  } 
     
    	  public static void main(String[] args)throws Exception {   
    	    Mysql mysql = new Mysql();
    	    mysql.Connect("services");
    	    System.out.println(NbTotalDispo.nbService("Moniteur",mysql));
    	    System.out.println(NbTotalDispo.nbComp("Moniteur",mysql));
    	    mysql.Deconnect();
    	  }
    	}

    Merci d'avance

  2. #2
    Membre chevronné Avatar de Jabbal'H
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2004
    Messages
    403
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2004
    Messages : 403
    Par défaut
    Déjà, ht.get(""); te renvois un object String, donc pour récupérer un int de cà, il faut faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Integer.valueOf(xxxx).intValue()
    Par contre la méthode .toInt() n'existe pas pour un String à ma connaissance.

    Pour le reste si tu veux d'autre enregistrement, il faut boucler sur le resultset

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    296
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 296
    Par défaut
    salut,
    j'ai pas su comment il faut boucler sur le resultset?

    merci de votre aide.

  4. #4
    in
    in est déconnecté
    Membre Expert 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
    Par défaut
    Citation Envoyé par mariafan
    salut,
    j'ai pas su comment il faut boucler sur le resultset?

    merci de votre aide.
    La réponse est surement dans la FAQ ... et partout sur internet ...

    mais bon à la place de
    ben c'est
    C'est vrai que c'est chaud

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    296
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 296
    Par défaut
    Merci

    Mais le pb c'est je ne sais pas comment définir mon resultset car pour moi le resultset ne s'applique que sur une requête, je n'ai jamais travaillé avec un resultset sans une requête à executer ou à mettre à jour.

    donc pour moi,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    rs=stat.executeQuery(requete);
    mais ici je n'ai pas de requête. comment faire alors?

  6. #6
    Membre émérite
    Profil pro
    Architecte technique
    Inscrit en
    Mars 2002
    Messages
    966
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Mars 2002
    Messages : 966
    Par défaut
    Citation Envoyé par mariafan
    Merci

    Mais le pb c'est je ne sais pas comment définir mon resultset car pour moi le resultset ne s'applique que sur une requête, je n'ai jamais travaillé avec un resultset sans une requête à executer ou à mettre à jour.

    donc pour moi,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    rs=stat.executeQuery(requete);
    mais ici je n'ai pas de requête. comment faire alors?
    Je ne comrpend pas alors d'où vient le ResultSet ???

  7. #7
    Membre Expert Avatar de maxf1
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 229
    Par défaut
    Ok, donc si tu n'as pas de requetes il ne s'agit pas de resultSet.

    Pour que je puisse t'aider,

    Tu as une HashTable info_inter, qui contient une "clé" (des prenoms apparement) et pour chaque prenom il y a une autre HashTable, qui contient la quantitetempstravail, c'est bien ca??


    Si c'est bien ca alors voici ce qu'il faut faire :
    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
     
     
    public int nbTotalDispo(int nbE, int nbC, int nbS, Hashtable info_inter) throws Exception {
    		int tempDispoCourant = 0;
    		int tempDispoTotal = 0;
    		int nbToD = 0;
    		int nb = 0;
    		int qntr;
    		Iterator iter = info_inter.keySet().iterator();
    		while (iter.hasNext()){
    			Hashtable hash = (Hashtable) info_inter.get(iter.next());
    			String qtite = (String)hash.get("quantitetempstravail");
    			qntr = Integer.parseInt(qtite);
    			// fais ta formule pour recuper le temps dispo;
    			[...]
    			tempDispoCourant = resultat_de_ta_formule;
    			tempDispoTotal += tempDispoCourant;
     
    		}
     
    		return tempDispoTotal;
    	}
    Si c'est pas exactement ca et que tu ne trouves pas dit ce qui ne vas pas,

Discussions similaires

  1. problème d'assignation avec une ArrayList
    Par Steph1904 dans le forum Collection et Stream
    Réponses: 1
    Dernier message: 10/06/2009, 22h37
  2. Afficher une liste déroulante (:select) avec une ArrayList
    Par tompalmeras dans le forum Struts 2
    Réponses: 3
    Dernier message: 28/04/2008, 21h15
  3. comment binder un dataList avec une ArrayList
    Par inno007 dans le forum ASP.NET
    Réponses: 1
    Dernier message: 03/03/2008, 17h55
  4. Réponses: 4
    Dernier message: 29/05/2007, 17h04
  5. [Jtable]Remplir un OBject[][] avec une ArrayList
    Par ArN0.VdB dans le forum Composants
    Réponses: 27
    Dernier message: 25/04/2007, 10h43

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