Problème afficher resultat BDD dans une "liste" vector

Résolu
Tom2300 Messages postés 2 Date d'inscription jeudi 5 avril 2007 Statut Membre Dernière intervention 2 mai 2007 - 5 avril 2007 à 16:34
Ombitious_Developper Messages postés 2333 Date d'inscription samedi 28 février 2004 Statut Membre Dernière intervention 26 juillet 2013 - 5 avril 2007 à 19:47
Bonjour à tous,

je vous expose mon problème :

j'ai une base de données que j'exploite via le JAVA. Aucun problème pour effectuer n'importe quelle requete.
Par contre j'ai une contrainte qui est de faire une classe par table. Et donc j'ai une classe nom_de_ma_table dans laquelle je cherche à rappatrier les données correspondantes qui sont dans la BDD dans une liste. J'utilise pour cela vector.
Voici mon code qui sera plus parlant je pense :

--------------------------------------------------------------------
public void download bdd(){
 blablabla
 vect = new Vector();
  Object [] tab = new Object[4];

blablabla de connexion a mySQL
 
   ResultSet resultat = instruction.executeQuery("SELECT * FROM operation");
   while(resultat.next()){
    tab[0]=resultat.getString("nom_operation");
    tab[1]=""+resultat.getInt("nbre_actions"); //ici une bonne methode de cast int to string ;-)
    tab[2]=resultat.getString("liste_actions");
    tab[3]=resultat.getString("nom_piece_deroule");
    vect.addElement(tab);
    
   }
}
--------------------------------------------------------------------

--------------------------------------------------------------------
public String afficher_liste(){
  String s = null;
  int i;
  
  // Afficher le contenu du vecteur
  for(i = 0; i < vect.size(); i++)
  {
   s = (String)vect.elementAt(i);
  }


  System.out.println("Voici la liste table_operation : "+s);
  return s;
 }
 
}
-------------------------------------------------------------------

et mon problème donc c'est que le vect.elementAt ne m'affiche rien, enfin si, ça :


Exception in thread "main" java.lang.ClassCastException: [Ljava.lang.Object;


at module_bdd.TableOperation.afficher_liste(TableOperation.java:61)


at module_bdd.TestSql.main(TestSql.java:15)

Merci d'avance de votre aide si vous avez des questions n'hésitez pas

4 réponses

Tom2300 Messages postés 2 Date d'inscription jeudi 5 avril 2007 Statut Membre Dernière intervention 2 mai 2007
5 avril 2007 à 17:26
j'ai trouvé la solution, je ne parcourais pas mon tableau, je voulais l'afficher comme ca par magie...lol

merci pour votre aide...
3
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
5 avril 2007 à 17:04
Salut,

ton exception veut simplement dire que vect.elementAt(i) ne renvoi pas une instance de String mais d'objet....

pour dépaner tu peux faire :
for(i = 0; i < vect.size(); i++) {
    s = ""+ vect.elementAt(i);
}

ou encore :
for(i = 0; i < vect.size(); i++) {
    Object o = vect.elementAt(i);
    if(o instanceof String)
        s = (String)o;
    else
       System.out.println(o.getClass());//pour afficher sa classe

}

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

WORA
0
lafolle24320 Messages postés 406 Date d'inscription samedi 26 mars 2005 Statut Membre Dernière intervention 29 juin 2009 7
5 avril 2007 à 17:05
s = (String)vect.elementAt(i);
--> a mon avis c'est ce cast qu'il n'arrive pas à faire essaye : s = vect.elementAt(i).toString();

Fais des prints avant est après ce cast pour vérifier que c'est bien çà le pb

a++

lafolle
0
Ombitious_Developper Messages postés 2333 Date d'inscription samedi 28 février 2004 Statut Membre Dernière intervention 26 juillet 2013 38
5 avril 2007 à 19:47
Salut:

Si tu utilises JDK 1.5 ou plus alors pour se débarasser de tous ces problèmes alors utilises Vector<String> aucun cast n'est nécessaire et si tu essayes d'ajouter un objet qui n'est pas de la classe String le compilateur te signalera une erreur.

Comme on dit en erreur de compilation est plus meilleure qu'une exception en temps d'exécution.


________________________________________________________________________________
A.B. : 
"Dieu nous donne des mains, mais il ne bâtit pas les ponts"
0
Rejoignez-nous