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 :

[JDBC] DatabaseMetaData


Sujet :

JDBC Java

  1. #1
    Membre du Club

    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 45
    Points : 46
    Points
    46
    Par défaut [JDBC] DatabaseMetaData
    salut,

    je cherche à récupérer la structure complète de toutes tables de toutes les bases de données d'un SGDBR.

    Le problème c'est que tous exemples disponibles sur le web avec la classe DatabaseMetaData montre comment récupérer la structure des tables d'une base de données spécifique, alors que dans mon cas, il faut que je commence par récupérer la liste des basses de données du serveur.

    Bref, avec le code suivant j'obtient la liste des bases des données du serveur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    DatabaseMetaData .dbMetaData = connection.getMetaData();
    ResultSet rsCatalogs = dbMetaData.getCatalogs();
     
    while( rsCatalogs.next() )
       System.out.println( rsCatalogs.getString( "TABLE_CAT" ) );
     
    rsCatalogs.close();
    J'ai 2 questions :
    1. Comment ensuite récupérer la liste des tables pour chaque bdd?
    2. J'utilise un serveur MySQL, est ce que ce fragment de code me fournira bien la liste des bdd quelque soit le SGDB ou bien est ce spécifique à MySQL?

    Merci pour votre aide

  2. #2
    Membre habitué Avatar de Oui-Oui MB
    Homme Profil pro
    Architecte technique
    Inscrit en
    Avril 2005
    Messages
    111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Belgique

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Avril 2005
    Messages : 111
    Points : 127
    Points
    127
    Par défaut
    Pour le 1 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    String[] types = {"TABLE"};
    ResultSet rs = dbmd.getTables(databaseName, null, null, types);
    Ca te renvoie un ResultSet avec la liste des tables, leur types et compagnie. Plus d'info dans la javadoc...


    Pour le 2 : théoriquement, ça marche avec n'importe quel type de BD du moment que le driver que tu utilises aie implémenté ces méthodes.
    Que la Schtuche soit avec vous !!!

  3. #3
    Membre du Club

    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 45
    Points : 46
    Points
    46
    Par défaut
    merci mais j'ai deja essayé ca et la méthode getTables(...) ne me retourne que la liste des bases de données du serveur (et non la liste des tables).

    Cela vient du fait que je n'ai pas de base de données sélectionnée au départ, l'url de la connexion est du type :

    jdbc:mysql://127.0.0.1:3306/

    et non pas :

    jdbc:mysql://127.0.0.1:3306/dbname/

    Je souhaite arriver à lister les tables de chaque bdd à partir des metadonnées (et sans changer l'url de la connexion).

    une idée?

  4. #4
    Membre habitué Avatar de Oui-Oui MB
    Homme Profil pro
    Architecte technique
    Inscrit en
    Avril 2005
    Messages
    111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Belgique

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Avril 2005
    Messages : 111
    Points : 127
    Points
    127
    Par défaut
    Je crois bien qu'alors tu vas devoir refaire pour chaque base de donnée une nouvelle connexion... Boarf, c'est pas encore la mer à boire !
    Que la Schtuche soit avec vous !!!

  5. #5
    Membre du Club

    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 45
    Points : 46
    Points
    46
    Par défaut
    oui je crois que tu as raison, j'ai eu beau chercher, je ne trouve pas d'autre solution.

    Je laisse quand même le post ouvert au cas où.

    En tout cas merci beaucoup pour ton aide

Discussions similaires

  1. [JSP][JDBC]1 seule connexion à la DB(suite)
    Par betherb dans le forum JDBC
    Réponses: 6
    Dernier message: 14/08/2003, 10h02
  2. [POSTGRESQL et JDBC] la langue de moliere
    Par jah dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 15/05/2003, 11h21
  3. JBuilder 8 et JDBC/PostgreSQL
    Par nicox dans le forum JBuilder
    Réponses: 2
    Dernier message: 14/05/2003, 15h43
  4. [JDBC][connexion persistante] performances avec JDBC
    Par nawac dans le forum Connexion aux bases de données
    Réponses: 6
    Dernier message: 06/05/2003, 10h37
  5. insérer des caractères accentués INFORMIX/JDBC
    Par donde dans le forum Informix
    Réponses: 2
    Dernier message: 19/11/2002, 20h02

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