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

Composants Java Discussion :

[JTable] Remplir à partir d'une requete


Sujet :

Composants Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Avril 2007
    Messages
    65
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 65
    Par défaut [JTable] Remplir à partir d'une requete
    bjr a tous, comme le titre indique, je ss bloqué sur une partie de mon projet concernant un JTable qui sera remplie a partir d'un requet sql de BD 'mysql';
    alors quoi je fait pr imaginer les choses rien ne marche;
    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
     //metode pour récuperer la colonne designtion
        public Vector RemplirJTable(Vector<String> vecteur)
        {
        	requeteMysql = "SELECT designation_fournisseur FROM fournisseur";//selection de tous les designation_fournisseur
        	try {
        		statement = (Statement) new Configuration().connexion.createStatement();//creation du statement a partir de la chaine de connexion
    			resultRequete = (ResultSet) statement.executeQuery(requeteMysql);//excuter la requete et la mettre dans une variabale ResulatSet 
    			while(resultRequete.next())//boucler tant qu'il y a des valeurs dans la table 
    			{
    				vecteur.addElement(resultRequete.getString("designation_fournisseur").toString());//ajouter les élements retournés par la requete dans la vecteur
    			}
    		} catch (Exception e) {
    			System.out.println("erreur du requete de recuperation des donnees : "+e.getMessage());
    		}
    		return vecteur;
        }
    voici ma methode qui retourne une Vector remplis par la liste des designation que je veux et je veux la mettre dans un Jtable.
    merci d'avance pr votre aide.

  2. #2
    Membre Expert
    Avatar de CheryBen
    Inscrit en
    Mai 2005
    Messages
    1 599
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 599
    Par défaut
    Ce ne serait pas plutôt un JComboBox que tu veux remplir? d'après le nom de la méthode et vu qu'il n'y a qu'une seule colonne, une JTable parait inappropriée. Il faudrait donc utiliser JComboBox(Vector items)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Vector<String> vecteur = new Vector<String>();
    JComboBox combo = new JComboBox(vecteur);
    la classe Vector est fortement déconseillée, il vaut mieux utiliser l'ArrayList.
    Ta connexion et ton ResultSet ne sont pas fermés. (Doit on fermer un ResultSet ?, Comment fermer une connexion ?)

  3. #3
    Membre confirmé
    Inscrit en
    Avril 2007
    Messages
    65
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 65
    Par défaut
    merci,mais la réalité c'était une mauvaise copier coller, et pr le rempllissage d'un jcombox ça bien passé, le probleme vient c'est que je veux remplir ma JTable,a partir d'une requete sql parvenant de ma BD MYsql.
    merci a nouveau.

  4. #4
    Membre Expert
    Avatar de CheryBen
    Inscrit en
    Mai 2005
    Messages
    1 599
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 599
    Par défaut
    Dans ce cas tu fas le même genre de parcours du ResultSet et tu utilises un les constructeurs JTable(Vector rowData, Vector columnNames) ou JTable(Object[][] rowData, Object[] columnNames)

  5. #5
    Membre confirmé
    Inscrit en
    Avril 2007
    Messages
    65
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 65
    Par défaut
    bon, merci a tous les amis, j'ai bien adapté un exemple a mon code pour avoir une bonne résultat.
    merci a tous pr votre aide.

  6. #6
    Membre confirmé
    Inscrit en
    Avril 2007
    Messages
    65
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 65
    Par défaut
    j'ai oublié, voila le code que j'ai adapté pour repondre a mes besoins :
    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
     
    import java.awt.BorderLayout;
    import java.awt.Dimension;
    import java.sql.ResultSet;
    import java.sql.ResultSetMetaData;
    import java.sql.Statement;
    import java.util.Vector;
     
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JPanel;
    import javax.swing.JScrollPane;
    import javax.swing.JTable;
    import javax.swing.JTextField;
     
    //class pour afficher la liste des administrateur disponible
    public class ListeAdministrateurs extends JFrame
    {
    	private static final long serialVersionUID = -4902442320396426081L;
    	JTable table;//instancition de JTable pour le remplissage des données a partir de la BD
    	Statement statement;//creation du statement à partir de la chaine de connexion pour commner les requetes
    	ResultSet resultRequete;//conteneur la resultat de la requete excutée
    	//constructeur de la class
    	@SuppressWarnings("static-access")
    	public ListeAdministrateurs()
    	{
    		// Le composant JTable
    	     JTable table = remplirTable();//la table sera initialisée par la liste des administrateurs envoyée par la fct 'remplirTable()'
    	     table.setPreferredScrollableViewportSize(new Dimension(500,120));//prendre la dimension de la table
    	     // Un panneau, placé dans la fenêtre
    	     JScrollPane panneau = new JScrollPane(table);//mettre la table dans ascenceur
    	     getContentPane().add(panneau, BorderLayout.CENTER);//centraliser le panneau dans la fenetre
    	     this.pack();
    	     this.setLocation(100, 100);
    	     this.setVisible(true);
    	}
     
    	/** Requête et résultats dans une JTable */
    	@SuppressWarnings("unchecked")
    	JTable remplirTable() {
    	      Vector tabLignes=new Vector(), nomCols=new Vector();
    	      int i;
    	      try {
    	        String requeteMysql = "Select * From utilisateurs";//chaine contenant la requete a executée
    	        statement = (Statement) new Configuration().connexion.createStatement();//creation du statement a partir de la chaine de connexion qui est placée dans la classe de connexion au MYsql
    			resultRequete = (ResultSet) statement.executeQuery(requeteMysql);//excuter la requete et la mettre dans une variabale ResulatSet 
    	        // Extraire noms des colonnes; les placer dans Vector nomCols
    	        ResultSetMetaData md = resultRequete.getMetaData();
    	        nomCols = new Vector();
    	        for( i=1; i<=md.getColumnCount (); i++)
    	             nomCols.add( md.getColumnLabel(i));
    	        // Mémoriser le résultat dans la JTable
    	        while( resultRequete.next()) {
    	         //placer les valeurs dans Vector ligne
    	           Vector ligne=new Vector();
    	           //le 3 designe le nombre de colonnes qui doit etre connu dans la table
    	           for(i=1; i<=3; i++) 
    	           {
    	               String ch=resultRequete.getString(i);
    	               ligne.add(ch);
    	           }
    	           tabLignes.add(ligne);
    	         }
    	       }
    	     catch(Exception e) { 
    	         System.out.print("erreur1 "+e.getMessage());//récuperer le message d'erreur en cas d'erreur
    	     }
     
    	     return new JTable(tabLignes,nomCols);//type de retour qui initialise le JTable par la liste des vecteur envoyées remplis des tables
    	}
    }
    de meme voici la classe de connexion au base de données MYsql
    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
     
    //appel des bibliotheques necessaire
    import java.sql.DriverManager;
    import java.sql.SQLException;
     
    import com.mysql.jdbc.Connection;
    //class pour creer un connexion avec le JDBC Mysql
    public class Configuration
    {
       //déclaration des chaines de connexion pour le SGBD Mysql
    	Connection connexion;// chaine de connexion au localhost avec les identifiants
    	String url,//adresse pour ouvrir la base de données dans le serveur localhost
    	       driver;//chaine de connexion au driver JDBC Mysql
    	//définition du constructeur pour la class Configuration
    	public Configuration()
    	{
    		//gestion d'exception d'abord
    		try {
    			driver = new String("com.mysql.jdbc.Driver");//appel de driver mysql
    			Class.forName(driver);//driver JDBC Mysql
    			url = new String("jdbc:mysql://localhost/cocema");//indiuqer le chemin de la base de données dans le serveur localhost
    			connexion = (Connection) DriverManager.getConnection(url,"root","password");//parametre de connexion au serveur
    			System.out.println("Connexion A mysql Bien faite");//message indiquant la bonne connexion au serveur
    		} catch (ClassNotFoundException e) {
    			System.out.println(e.getMessage());
    		} catch (SQLException e) {
    			System.out.println(e.getMessage());
    		}
    	}
    }
    bon courage les amis, j'espère que c'est bien commenter.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Rempli et Afficher Jtable A Partir D'une Requete
    Par the watcher dans le forum API standards et tierces
    Réponses: 2
    Dernier message: 04/05/2010, 11h08
  2. [JTable] afficher et remplir à partir d'une requete
    Par stratocasters dans le forum Composants
    Réponses: 5
    Dernier message: 06/08/2008, 09h26
  3. remplir un Jtree à partir d'une requete SQL
    Par opensource dans le forum SQL
    Réponses: 5
    Dernier message: 21/01/2008, 17h25
  4. [SQL] Remplir à partir d'une requete SQL
    Par GarsDuCalvados dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 18/09/2007, 10h41
  5. Remplir jtable a partir d'une base de donnée mysql
    Par chris81 dans le forum Composants
    Réponses: 3
    Dernier message: 26/04/2007, 14h09

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