Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1722 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  [Débutant] Truc débile

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Débutant] Truc débile

n°1574550
swiixz
Posté le 13-06-2007 à 17:47:32  profilanswer
 

Bonjour à tous, voila j'ai une jTable qui s'initialise à partir d'une base de données, le probleme est que quand ma Bdd s'actualise je n'arrive pas à actualiser ma table, j'ai pourtant essaye pas mal de solution avant de venir demander.
Serait il possible d'avoir de l'aide SVP c'est important.  
Merci d'avance

mood
Publicité
Posté le 13-06-2007 à 17:47:32  profilanswer
 

n°1574766
swiixz
Posté le 14-06-2007 à 10:23:18  profilanswer
 

Personne ne peut m'aider?

n°1574821
deadalnix
Posté le 14-06-2007 à 11:49:30  profilanswer
 

Pas de solution sans saturer ta bdd.
 
Fait un requete toutes les n secondes pour ractualiser ta table. Utilise des thjreads pour pas bloquer ton interface.
 
Mais je te deconseille franchement ca : la bdd va etre saturée. Utilise plutot un bouton rafrachir qui met a jour la jtable.
 
Enfin, si tu veux vraiment afficher le contenu en temps reel, il va te falloir utiliser d'autres outils qu'un bdd/affichage via jTable.

n°1574833
MagicBuzz
Posté le 14-06-2007 à 12:02:41  profilanswer
 

Java connaît pas les systèmes de notification des SGBD ???
 
Logiquement tu ouvres le curseur de lecture en mode optimistic et il doit se mettre à jour en temps réel :??:
 
C'est jTable qui pose problème ou JDBC ???

n°1574845
swiixz
Posté le 14-06-2007 à 12:40:35  profilanswer
 

Les utilisateurs peuvent choisir les colonnes du tableau que je fais à l'aide d'un popup et quand ils valident le popup, la base qui contient les colonnes à afficher se met à jour. Seulement ma table ne se rafraichi pas.
Ceci me pose beaucoup de problemes si vous pouviez m'aider ça serait cool.

n°1574860
swiixz
Posté le 14-06-2007 à 13:02:26  profilanswer
 

Voici l'initialisation de mon tableau à parti de mon model :

Code :
  1. jTtableauclient = new JTable(new Modelclient());


 
et voici mon model:
 

Code :
  1. import java.sql.Connection;
  2. import java.sql.DriverManager;
  3. import java.sql.ResultSet;
  4. import java.sql.SQLException;
  5. import java.sql.Statement;
  6. import javax.swing.JOptionPane;
  7. import javax.swing.table.AbstractTableModel;
  8. public class Modelclient extends AbstractTableModel {
  9.  Connection connexion = null,connexiongescom = null;
  10.  Statement  instruction  = null,instructiongescom  = null;
  11.  ResultSet  resultat = null,resultatgescom = null;
  12.  Integer nbrechamp=1,index=0,nbreenreg=0,index2=0,index3=0;
  13.  String[] columnNames;
  14.  Object[][] data;
  15.         public Modelclient() {
  16.          try
  17.       {       
  18.         Class.forName ("com.mysql.jdbc.Driver" );  // Chargement de la classe du driver JDBC de MySQL  
  19.         connexion = DriverManager.getConnection("jdbc:mysql://localhost/bdd_utilisateur" );// Ouverture de la connexion avec MySQL sur la base utilisateur
  20.         instruction = connexion.createStatement();      
  21.         resultat = instruction.executeQuery("select count(*)FROM param_utilisateur  where affichage='1'" );//combien de colonnes à afficher?  
  22.         resultat.next();
  23.         nbrechamp=resultat.getInt("count(*)" );
  24.         columnNames = new String[nbrechamp];
  25.         resultat = instruction.executeQuery("select champ FROM param_utilisateur where affichage ='1'" );//selection des champs a afficher          
  26.      
  27.         while(index<nbrechamp){ // initialisation des colonnes
  28.         resultat.next();
  29.           columnNames[index]=resultat.getString("champ" );         
  30.           index++;
  31.      }
  32.         connexiongescom = DriverManager.getConnection("jdbc:mysql://localhost/gescom2" );// Ouverture de la connexion avec MySQL sur la base utilisateur
  33.         instructiongescom = connexiongescom.createStatement();
  34.         resultatgescom = instructiongescom.executeQuery("select count(*)FROM client" );// combien d'enregistrement dans la table client?
  35.         resultatgescom.next();
  36.         nbreenreg=resultatgescom.getInt("count(*)" );
  37.        
  38.         resultatgescom = instructiongescom.executeQuery("select * FROM client" );
  39.      
  40.      
  41.         data = new Object[nbreenreg][nbrechamp];
  42.         while(index2<nbreenreg){ //initialisation des données
  43.          resultatgescom.next();
  44.          while(index3<nbrechamp){
  45.           data[index2][index3]=resultatgescom.getString((index3+1));
  46.           index3++;          
  47.          }
  48.         index3=0;
  49.         index2++;
  50.         }
  51.       }
  52.          catch (ClassNotFoundException ex)
  53.       {
  54.         JOptionPane.showMessageDialog(null,"Classe introuvable " + ex.getMessage ());
  55.       }
  56.       catch (SQLException ex)
  57.       {
  58.         JOptionPane.showMessageDialog(null,"Erreur JDBC : " + ex.getMessage ());
  59.       }
  60.       finally
  61.       {
  62.         try
  63.         {
  64.           if (resultat != null)
  65.             resultat.close();
  66.           if (instruction != null)
  67.             instruction.close();
  68.           if (connexion != null)
  69.             connexion.close();
  70.         }
  71.         catch (SQLException ex)
  72.         {
  73.           ex.printStackTrace ();
  74.         }
  75.       }
  76.      fireTableStructureChanged();
  77.         }
  78.         public int getColumnCount() {
  79.             return columnNames.length;
  80.         }
  81.         public int getRowCount() {
  82.             return data.length;
  83.         }
  84.         public String getColumnName(int col) {
  85.             return columnNames[col];
  86.          
  87.         }
  88.         public Object getValueAt(int row, int col) {
  89.             return data[row][col];
  90.         }
  91.      
  92.     }


Au passage je commence tout juste le java alors je sais qu'il y a des trucs que je fais horriblement mal mais mon maitre de stage ne connais pas le java du coup je me retrouve tout seul sans personne pour m'aider.
Merci d'avance.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  [Débutant] Truc débile

 

Sujets relatifs
[Débutant] Delphi ou PythonProgrammation VBS par un débutant
[C] Petit soucis de debutant, certainement vraiment tres bete...Problème bizarre avec GCC (pour débutant)
[Visual C++] serialize débutantdebutant vbs
[Débutant] Assistant création base de données avec formulaireProblème débutant
correction tout petit script (debutant) (JAVASCRIPT)debutant HTML prob IE7
Plus de sujets relatifs à : [Débutant] Truc débile


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR