Aide code java :!

Résolu/Fermé
supupoff Messages postés 310 Date d'inscription dimanche 27 novembre 2011 Statut Membre Dernière intervention 8 janvier 2021 - 22 févr. 2013 à 22:36
supupoff Messages postés 310 Date d'inscription dimanche 27 novembre 2011 Statut Membre Dernière intervention 8 janvier 2021 - 23 févr. 2013 à 08:54
Bonsoir,

j'arrive pas comprendre rien n'affiche dans jTable alors
je teste avec System.out.println(table);

il m'affiche : com.mysql.jdbc.JDBC4ResultSet@1787338

partie code requette
public ArrayList<Activiter>ListeActiviter()
      {
          ArrayList liste2= new ArrayList();
          try{
          Module Objmod = new Module();
          ResultSet table;
          table = Objmod.listar("Select * FROM user,activiter,projet where activiter.IDProjet=projet.IdProjet And projet.iduser=user.id ");
          System.out.println(table); // pour tester
          Activiter Objart;
              Objart = null;
               
          while(table.next()){
         .....

          liste2.add(Objart);
          
          }
          }catch(Exception e){
          javax.swing.JOptionPane.showMessageDialog(null,e.getMessage());
          
          }
            return liste2;
           
          }


alors System.out.println m'affiche com.mysql.jdbc.JDBC4ResultSet@1787338

ceci la méthide listar

public ResultSet listar (String Cad)
   {
   try{
    Class.forName(driver).newInstance();
    Connection cn=DriverManager.getConnection(url,dbUserId,dbPassword);
    
   PreparedStatement da = cn.prepareStatement(Cad);
   ResultSet tb1 = da.executeQuery();
   return tb1;
   }catch(ClassNotFoundException | InstantiationException | IllegalAccessException | SQLException e){
          javax.swing.JOptionPane.showMessageDialog(null,e.getMessage());
          return null;
          }
   }
A voir également:

1 réponse

KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 3 015
22 févr. 2013 à 22:40
C'est comme pour les tableaux (et d'autres), afficher un ResultSet n'affiche pas les valeurs sur lesquels il opère !

Fais plutôt un affichage de liste2, ça fonctionnera mieux...
0
supupoff Messages postés 310 Date d'inscription dimanche 27 novembre 2011 Statut Membre Dernière intervention 8 janvier 2021 34
22 févr. 2013 à 22:55
comment?!
0
KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 3 015
22 févr. 2013 à 22:58
System.out.println(liste2); avant de faire ton return liste2;
0
supupoff Messages postés 310 Date d'inscription dimanche 27 novembre 2011 Statut Membre Dernière intervention 8 janvier 2021 34
22 févr. 2013 à 23:05
affiche: [ ]
0
supupoff Messages postés 310 Date d'inscription dimanche 27 novembre 2011 Statut Membre Dernière intervention 8 janvier 2021 34
22 févr. 2013 à 23:07
ici le select ne return rien que erreur > com.mysql.jdbc.JDBC4ResultSet@1787338 < pr cela liste2 sera vide :
0
KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 3 015
22 févr. 2013 à 23:20
com.mysql.jdbc.JDBC4ResultSet@1787338 ce n'est pas une erreur, c'est l'affichage par défaut que te renvoie ta ligne System.out.println(table);

Si la liste2 affiche [] c'est tout simplement que ton ResultSet est vide ! Tu peux faire comme ça pour compter le nombre d'éléments, mais puisque ton ResultSet est vide, tu devrais avoir n=0...

ArrayList liste2= new ArrayList();

try
{
    ResultSet table = ...
    
    int n=0;
    while(table.next())
    {
        n++;
        ...
        Activiter Objart = ...
        System.out.println(Objart);
        liste2.add(Objart);
    }
}
catch(Exception e)
{
    System.err.println(e);
    //javax.swing.JOptionPane.showMessageDialog(null,e.getMessage());
}

System.out.println("n="+n);
System.out.println("liste2="+liste2);
return liste2;
0