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 :

Liste des tables de ma base


Sujet :

JDBC Java

  1. #1
    Membre éprouvé Avatar de fraco
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    750
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2006
    Messages : 750
    Points : 934
    Points
    934
    Par défaut Liste des tables de ma base
    Bonjour !
    Avec metadata, je peux trouver la liste des tables de ma base :

    result = connexion.getMetaData().getTables(connexion.getCatalog(),null,null,null);

    avant les noms des tables, divers éléments sont renvoyés dans result; il faut sauter
    un certain nombre de lignes avant de voir la première table; combien ?

    base Derby : 18
    base H2 : 24

    bizarre... j'aurais espéré que toutes les bases fournissaient les mêmes listes pour getTables.

    normal ? erreur de ma part ? bug d'une des bases ?

    merci pour vos réponses.
    et Bonne année à tous !

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    511
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 511
    Points : 386
    Points
    386
    Par défaut
    Pour mysql tu lance la rqte SHOW TABLES et tu as la liste des tables voir si cette rqte est valable dans les autres systèmes

  3. #3
    Membre expert
    Avatar de TheLeadingEdge
    Inscrit en
    Mai 2005
    Messages
    1 199
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 1 199
    Points : 3 103
    Points
    3 103
    Par défaut
    avant les noms des tables, divers éléments sont renvoyés dans result; il faut sauter
    un certain nombre de lignes avant de voir la première table; combien ?
    Tu peux poster un exemple ?
    Est-ce que ce ne serait pas les tables des schémas ''système'' ? ou des views ?
    Essaie de filtrer comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    dbmd = this.getConnection ().getMetaData ();
    tables = dbmd.getTables (null, "xxx", "%", new String [] {"TABLE"});
    xxx est le nom du schéma/base de données qui contient les tables qui t'intéressent.

  4. #4
    Membre éprouvé Avatar de fraco
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    750
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2006
    Messages : 750
    Points : 934
    Points
    934
    Par défaut
    merci LeadingEdge !
    je ne savais pas comment entrer le dernier élément ("TABLE").
    ça marche comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
        result =  con.getMetaData().getTables  (null,null,null, new String [] {"TABLE"});
    voici ce que je faisais :

    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
     
          sl = "";      
          ResultSet result = null;                   // noter les tables de la base    
          int i = 0, nb = 0;
          try {
             result =  con.getMetaData().getTables("",null,null,null);                       
             s ="";                 
             while (result.next()) {                               
                    if (i > -1) {                                                
                        sl = sl+result.getString(3)+" ";    // nom de la table en n° 3  
                    }           
             }                                         
          } catch (SQLException ex) {
                  ex.printStackTrace();             
          }
    et j'obtenais, pour H2

    driver=org.h2.Driver
    url=jdbc:h2:/home/fc/H2_BASE/base/database;FILE_LOCK=NO
    ici le nom des tables est en 25 et suivants

    CATALOGS COLLATIONS COLUMNS COLUMN_PRIVILEGES CONSTANTS CONSTRAINTS CROSS_REFERENCES DOMAINS FUNCTION_ALIASES FUNCTION_COLUMNS HELP INDEXES IN_DOUBT RIGHTS ROLES SCHEMATA SEQUENCES SETTINGS TABLES TABLE_PRIVILEGES TABLE_TYPES TRIGGERS TYPE_INFO USERS VIEWS ADR CLIENTS CODES POLITESSE
    ou pour Derby :

    driver=org.apache.derby.jdbc.ClientDriver
    url=jdbc:derby://localhost:1527/database
    ici le nom des tables est en 19 et suivants

    SYSALIASES SYSCHECKS SYSCOLPERMS SYSCOLUMNS SYSCONGLOMERATES SYSCONSTRAINTS SYSDEPENDS SYSFILES SYSFOREIGNKEYS SYSKEYS SYSROUTINEPERMS SYSSCHEMAS SYSSTATEMENTS SYSSTATISTICS SYSTABLEPERMS SYSTABLES SYSTRIGGERS SYSVIEWS SYSDUMMY1 ADR CODES POLITESSE

  5. #5
    Membre éprouvé Avatar de fraco
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    750
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2006
    Messages : 750
    Points : 934
    Points
    934
    Par défaut
    merci Mengué georges !

    ..ça n'a pas l'air de marcher, mais peut-être que je m'y prends mal
    aurais-tu un exemple d'utilisation de SHOW TABLES ?

Discussions similaires

  1. Afficher la liste des Tables d'un Base de Donnée.
    Par faressam dans le forum VBA Access
    Réponses: 3
    Dernier message: 18/03/2008, 05h36
  2. Liste des table d'une base
    Par richard038 dans le forum SQL
    Réponses: 9
    Dernier message: 07/12/2005, 22h44
  3. La liste des tables d'une base
    Par jcachico dans le forum Requêtes
    Réponses: 3
    Dernier message: 01/12/2005, 13h54
  4. Extraire liste des tables d'une base !!!!
    Par Bjuice2 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 15/03/2005, 15h44
  5. Liste des tables d'une bases de données spécifique
    Par faridos23 dans le forum Requêtes
    Réponses: 3
    Dernier message: 26/08/2003, 22h20

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