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

JDBC Java Discussion :

JTree remplissage depuis une requête SQL


Sujet :

JDBC Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Novembre 2013
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2013
    Messages : 31
    Par défaut JTree remplissage depuis une requête SQL
    Bonjour à tous,

    je me permet de solliciter votre aide car je rencontre un problème pour finaliser un code me permettant de construire un JTree depuis une base de donnée.
    J'ai créer la fonction ci-dessous pour alimenter un JTree depuis un tableau a entrée multiple, tout fonctionne parfaitement bien.
    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
    public void bddTree () throws SQLException{
     
            //il faut allimenter le objectTable avec la requet SQL
            Object[][] table = {
            {1, 1, "CHENIEUX"}, //i=0
            {2, 1, "Administration"}, //i=1
            {3, 2, "po-c-pradeau"}, //i=2
            {4, 2, "po-j-mondout"}, //i=3
            {5, 2, "pc-m-savignat"}, //i=4
            {6, 1, "PC Scan-IRM"}, //i=5
            {7, 6, "Noeud7"}, //i=6
            {8, 6, "Noeud8"}, //i=7
            {9, 6, "Node9"}, //i=8
            {10, 1, "Node10"},};    //i=9          
            //Création de tous les noeuds de la table.
        DefaultMutableTreeNode[] node = new DefaultMutableTreeNode[table.length];
        for (int i = 0; i < table.length; i++) {
            node[i] = new DefaultMutableTreeNode(table[i][2].toString());
        }
        //fin boucle 
        DefaultMutableTreeNode  rootNode = node[0];   //On définie le Nœud Root.
        //on lit le tableau et on assigne les noeuds.
        for (int i = 0; i < table.length; i++) {
            for (int j = 1; j < table.length; j++) {
                if (table[i][0] == table[j][1]) {
                    System.out.println(table[i][2].toString() + " est le parent de : " + table[j][2].toString());
                    node[i].add(node[j]);
                }
            }
        }
        //on crée le model pour le JTree avec.
        DefaultTreeModel treeModel = new DefaultTreeModel(rootNode);
        //Application du model au JTree.
        jTree_bdd.setModel(treeModel);
        }
    J'aimerai maintenant alimenter ce tableau avec une table de ma base donnée qui reprend le même shema que mon tableau écrit en dur dans l'appli.
    J'ai essayé plusieurs méthodes trouvé sur le net, sans sucés, mes connaissances en SQL--> java étant limité je galère vraiment.
    Si quelqu'un peu me mettre sur la bonne piste pour alimenter correctement le tableau depuis ma requête SQL.
    Merci

  2. #2
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    Bonjour,

    Citation Envoyé par Phixx Voir le message
    J'ai essayé plusieurs méthodes trouvé sur le net, sans sucés,
    Tu peux nous les montrer pour qu'on puisse les corriger?

    A+.

  3. #3
    Membre averti
    Homme Profil pro
    Inscrit en
    Novembre 2013
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2013
    Messages : 31
    Par défaut
    Désolé mon copier coller as du bug je vous le colle :
    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
     public void bddTree () throws SQLException{
     
            //il faut allimenter le objectTable avec la requet SQL
           /* Object[][] tablePOK = {
            {1, 1, "CHENIEUX"}, //i=0
            {2, 1, "Administration"}, //i=1
            {3, 2, "po-c-pradeau"}, //i=2
            {4, 2, "po-j-mondout"}, //i=3
            {5, 2, "pc-m-savignat"}, //i=4
            {6, 1, "PC Scan-IRM"}, //i=5
            {7, 6, "Node7"}, //i=6
            {8, 6, "Node8"}, //i=7
            {9, 6, "Node9"}, //i=8
            {10, 1, "Node10"},};    //i=9
           // Object[][] table;*/
             try{
                Statement st = gestionBdd.getInstance().createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
    					ResultSet.CONCUR_READ_ONLY);
                ResultSet res = st.executeQuery("Select * from tabchenvnc");
                ResultSetMetaData meta = res.getMetaData();
                Object[] column = new Object[meta.getColumnCount()];
     
    			for (int i = 1; i <= meta.getColumnCount(); i++) {
    				column[i - 1] = meta.getColumnName(i);
    			}
    			res.last();
    			int rowCount = res.getRow();
    			Object[][] data = new Object[res.getRow()][meta.getColumnCount()];
     
    			// On revient au départ
    			res.beforeFirst();
    			int j = 1;
     
    			// On remplit le tableau d'Object[][]
    			while (res.next()) {
    				for (int i = 1; i <= meta.getColumnCount(); i++)
    					data[j - 1][i - 1] = res.getObject(i);
     
    				j++;
    			} 
                            //Création de tous les noeuds de la table.
                DefaultMutableTreeNode[] node = new DefaultMutableTreeNode[data.length];
                    for (int i = 0; i < data.length; i++) {
                       node[i] = new DefaultMutableTreeNode(data[i][2].toString());
                     }
                    //fin boucle 
                     DefaultMutableTreeNode  rootNode = node[0];   //On definie le Noeud Root.
                      //on lit le tableau et on assigne les noeuds.
                     for (int i = 0; i < data.length; i++) {
                           for (int k = 1; k < data.length; k++) {
                               if (data[i][0] == data[k][1]) {
                                 System.out.println(data[i][2].toString() + " est le parent de : " + data[k][2].toString());
                                  node[i].add(node[k]);
                                }
                             }
                        }
        //on crée le model pour le JTree avec.
        DefaultTreeModel treeModel = new DefaultTreeModel(rootNode);
        //Application du model au JTree.
        jTree_bdd.setModel(treeModel);
     
     
     
            }catch(SQLException e){
                e.printStackTrace(); 
            }
        }
    voila le screen de la table :

    voila le resultat de mes compétences en SQL :

  4. #4
    Membre averti
    Homme Profil pro
    Inscrit en
    Novembre 2013
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2013
    Messages : 31
    Par défaut
    Est ce que quelqu'un as une petite idée, dans quelle boucle je me plante.

    Merci de votre aide.

  5. #5
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    Essaie de faire

    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
    ResultSet res = st.executeQuery("Select * from tabchenvnc");
    int nbColumn = res.getMetaData().getColumnCount();
     
    res.last();
    int rowCount = res.getRow();
    Object[][] data = new Object[rowCount][nbColumn];
     
    // On revient au départ
    res.beforeFirst();
    int j = 0;
     
    // On remplit le tableau d'Object[][]
    while (res.next()) {
    	for (int i = 0; i < nbColumn; i++)
    		data[j][i] = res.getObject(i+1);
    	j++;
    } 
    for (int i=0; i < rowCount ; i++){
    	System.out.print("{");
    	for (int k = 0; k < nbColumn; k++)	
    		System.out.print(data[i][k] + ", ");
    	System.out.println("}");
    }
    pour voir ce qu'il retourne.

    A+.

  6. #6
    Membre averti
    Homme Profil pro
    Inscrit en
    Novembre 2013
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2013
    Messages : 31
    Par défaut
    Merci d'avoir pris du temps pour moi,

    voila le résultat de ton code :

    run:
    {1, 1, CHENIEUX , }
    {2, 1, po-c-pradeau , }
    {3, 1, po-j-mondout , }
    {4, 1, pc-m-savignat , }

    et j'ai toujours que le rootNodes qui s'affiche alors que lorsque je le fait avec le tableau en dur tout marche nikel.

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

Discussions similaires

  1. ComboBox chargée depuis une requête SQL
    Par verrue dans le forum Flex
    Réponses: 10
    Dernier message: 08/10/2009, 19h42
  2. Remplissage de QComboBox depuis une requête SQL
    Par L0101SA dans le forum Bases de données
    Réponses: 2
    Dernier message: 01/03/2008, 20h42
  3. Lancement d'un exe depuis une requête SQL
    Par mister_rom dans le forum Développement
    Réponses: 5
    Dernier message: 29/11/2007, 10h27
  4. Lancement d'un exe depuis une requête SQL
    Par mister_rom dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 29/11/2007, 10h27
  5. Générer une requête SQL depuis un model physique
    Par Ryan Sheckler dans le forum Requêtes
    Réponses: 4
    Dernier message: 01/12/2005, 12h11

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