Aide code java :!

Résolu
supupoff Messages postés 350 Statut Membre -  
supupoff Messages postés 350 Statut Membre -
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;
          }
   }

1 réponse

  1. KX Messages postés 19031 Statut Modérateur 3 020
     
    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
    1. supupoff Messages postés 350 Statut Membre 34
       
      comment?!
      0
    2. KX Messages postés 19031 Statut Modérateur 3 020
       
      System.out.println(liste2); avant de faire ton return liste2;
      0
    3. supupoff Messages postés 350 Statut Membre 34
       
      affiche: [ ]
      0
    4. supupoff Messages postés 350 Statut Membre 34
       
      ici le select ne return rien que erreur > com.mysql.jdbc.JDBC4ResultSet@1787338 < pr cela liste2 sera vide :
      0
    5. KX Messages postés 19031 Statut Modérateur 3 020
       
      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