Afficher base de donnée sql dans une Jtable

Snyve Messages postés 11 Date d'inscription dimanche 4 février 2007 Statut Membre Dernière intervention 31 août 2007 - 18 avril 2007 à 19:34
aminewas Messages postés 13 Date d'inscription mercredi 10 octobre 2007 Statut Membre Dernière intervention 31 mars 2010 - 22 mars 2010 à 16:37
Bonjour à tous !

Je suis un débutant en java. J'utilise Netbeans.
J'ai créer un programme java qui récupère les informations d'une base de donnée et les affiche dans la console.
(pour le sql, j'utilise postgresql).
Maintenant, j'aimerais pouvoir afficher ces données dans un tableau. Je me suis alors tourné vers le JTable.
Mais ça fait plusieurs heures que je passe dessus sans y arriver.
Est ce que quelqu'un aurait un exemple déjà tout fait pour que je puisse comprendre le fonctionnement ?

Voici mn programme:

package testsql;

import java.sql.*;

import java.io.*;

import
java.util.Scanner;

class
testsql{

    public static void main(String[] args){

        String pilote =
"org.postgresql.Driver";

        try {

            Class.forName(pilote);

            System.out.println("Driver
chargé");

        } catch (ClassNotFoundException e) {

            e.printStackTrace();

        }

        try{

            Connection connexion =
DriverManager.getConnection("jdbc:postgresql://localhost:5432/postgres","postgres","postgres"); 

            Statement instruction =
connexion.createStatement();

   

            ResultSet resultat =
instruction.executeQuery("SELECT * FROM client");

            while(resultat.next()){

       

               
System.out.println("---------------------------");

                System.out.println("Nom du
client: "+resultat.getString("ncli"));

                System.out.println("Nom:
"+resultat.getString("nom"));

                System.out.println("adresse:
"+resultat.getString("adresse"));

                System.out.println("Ville:
"+resultat.getString("ville"));

               
System.out.println("Statut:
"+resultat.getString("statut"));

      

            }

        } catch (Exception e){

 

           e.printStackTrace();

        }

    }

}

8 réponses

Ombitious_Developper Messages postés 2333 Date d'inscription samedi 28 février 2004 Statut Membre Dernière intervention 26 juillet 2013 38
19 avril 2007 à 20:34
Salut:

Jettes un coup d'oeil sur la classe AbstractTableModel il sert de modèle pour représenter les données dans un JTable.

Ou bien pour faire les choses rapidement, utilises getModel ().

Au moins, tu as maintenant deux clefs pour commencer ta rechercher.

Bonne chance.


________________________________________________________________________________
A.B. : 
"Dieu nous donne des mains, mais il ne bâtit pas les ponts"
0
cs_darkwise Messages postés 1 Date d'inscription vendredi 11 novembre 2005 Statut Membre Dernière intervention 25 avril 2007
25 avril 2007 à 17:18
si tu as trouvé quelque chose ( un exemple ), merci de le nous passer
 

Bas toi avec les meilleurs...
0
nticjava Messages postés 8 Date d'inscription dimanche 4 octobre 2009 Statut Membre Dernière intervention 22 avril 2011
12 oct. 2009 à 02:22
tu doit travailler sur un defaulttablemodel puis tu le passe a j-table car j-table et de type jvm donc:
try{
Class .forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection A=DriverManager.getConnection("jdbc:odbc:t'a source ODBC de acces");
Statement S=A.createStatement();
ResultSet R=S.executeQuery("select * from nom de t'a table");
ResultSetMetaData RR=R.getMetaData();
//ResultSetMetaData il offre des méthode comme vous allé découvrire la


int compteur=RR.getColumnCount();
String tab[]=new String[compteur];

//cette boucle pour identifier les nom de colones
for(int i=1;i<=compteur;i++){
tab[i-1]= RR.getColumnName(i);}



DefaultTableModel D=new DefaultTableModel();
D.setColumnIdentifiers(tab);



while(R.next()){
Object tab1[]=new Object[compteur];
// String hh[]=new String[compteur]; tableau type String
for(int k=0;k<compteur;k++){
tab1[k]=R.getObject(k+1);
//tab[k-1]=R.getString(k);méthode getString
}
D.addRow(tab1);}
//lol ses le nom de mon j-table
lol.setModel(D);
A.close();



}catch(Exception e){
e.printStackTrace();
}

contacte moi si s'amarche et il y'a un code facile que mais il travaille que sur un base que tu connait déja nombre de colones et....
0
aminewas Messages postés 13 Date d'inscription mercredi 10 octobre 2007 Statut Membre Dernière intervention 31 mars 2010
22 mars 2010 à 16:07
slt,
j 2 forme
1->main qui inclut tout les fonction
2->projets ou je fé appel a mon fonction apres l'insertion dans la bd
j utilisé ce code m ca marche pas

voila l'erreur :
""non-static method setModel(javax.swing.table.TableModel) cannot be referenced from a static context""

avec un tiré rouge sur le nom de Jable pour moi c Jtable1
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Ombitious_Developper Messages postés 2333 Date d'inscription samedi 28 février 2004 Statut Membre Dernière intervention 26 juillet 2013 38
22 mars 2010 à 16:16
Le message d'erreur est clair.

Il faut enlever le quantificateur "static" de la méthode qui fait appel à la méthode setModel().
0
aminewas Messages postés 13 Date d'inscription mercredi 10 octobre 2007 Statut Membre Dernière intervention 31 mars 2010
22 mars 2010 à 16:20
re
ou ca?
0
Ombitious_Developper Messages postés 2333 Date d'inscription samedi 28 février 2004 Statut Membre Dernière intervention 26 juillet 2013 38
22 mars 2010 à 16:32
envoies le code/la méthode qui génère une erreur de compilation.
0
aminewas Messages postés 13 Date d'inscription mercredi 10 octobre 2007 Statut Membre Dernière intervention 31 mars 2010
22 mars 2010 à 16:37
voila mon code dans form main



public void affichetabmodel(){
try{
rs=st.executeQuery("select sujet from projet;");
ResultSetMetaData rsd=rs.getMetaData();
int compteur=rsd.getColumnCount();
String tab[]=new String[compteur];
for(int i=1;i<=compteur;i++){
tab[i-1]= rsd.getColumnName(i);}
DefaultTableModel D=new DefaultTableModel();
D.setColumnIdentifiers(tab);
while(rs.next()){
Object tab1[]=new Object[compteur];
for(int k=0;k<compteur;k++){
tab1[k]=rs.getObject(k+1); }
D.addRow(tab1);}

Jtable1.setModel(D);


}catch (SQLException ex){

System.out.println("erreur");
}
}




et ce code sur le boutton afficher

Main m =new Main();
// m.insertprojet(sujet, description);
m.affichetabmodel();
0