Bonjour à tous,
j'ai essayer d'appliquer le code inscrit dans la faq jdbc pour afficher la liste des tables d'une base de données mais ça ne marche pas.
voici la classe java :
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
 
/*
 * Créé le 26 déc. 2008
 *
 */
 
 
import java.sql.*;
import java.util.*;
 
public class DFInfoBD {
 
    private Connection inf_con;
 
    public DFInfoBD(Connection con){
        inf_con=con;
    }
 
    /* Renvoi la liste des tables de la BD*/
    public List getListeTables() throws Exception{
        List tables=null; String[] typeTables={"TABLE"};
        tables.clear();
 
        //on récupère les métadonnées à partir de la connexion
        DatabaseMetaData dmd = inf_con.getMetaData();
        //récupération des informations
        ResultSet rsTables = dmd.getTables(inf_con.getCatalog(),null,"%",typeTables);
        //affichage des informations
        while(rsTables.next()){
           for(int i=0; i<rsTables.getMetaData().getColumnCount();i++){
              //String nomColonne = rsTables.getMetaData().getColumnName(i+1);
              //Object valeurColonne = rsTables.getObject(i+1);
              tables.add(rsTables.getMetaData().getColumnName(i+1));
              //System.out.println(nomColonne+" = "+valeurColonne);
           }
        }
        return tables;
    }
 
 
    /*** GETTERS ***/
    public Connection getInfoCon(){ return this.inf_con;}
    /***  SETTERS ***/
    public void setInfoCon(Connection con){this.inf_con=con;}
 
 
    public static void main(String[] args) {
 
	    try{
	        Class.forName("com.mysql.jdbc.Driver");
	        Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "francis", "dfrancis");
	        System.out.println("Connexion effectuée avec succès.");
	        DFInfoBD info = new DFInfoBD(con);
	        List lesTables = info.getListeTables();
	        System.out.println("Bon");
	        if(lesTables!=null){
	            for(int i=1; i<=lesTables.size(); i++){
	                System.out.println(lesTables.get(i).toString());
	            }
	        }
	        con.close();
	    } catch(Exception e){
	        System.err.print("An error has occured : "+e.getMessage());
	    }
 
    }
}
et voici l'erreur retournée :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
Connexion effectuée avec succès.
An error has occured : null
c'est koi le problème à votre avis ? Tout a pourtant l'air nikel.