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] description d'une table


Sujet :

JDBC Java

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2002
    Messages : 11
    Points : 12
    Points
    12
    Par défaut [jdbc] description d'une table
    bonjour,

    j'ai une question toute bête (j'espère pas trop non plus mais bon...). Est-ce possible, grâce à une connexion jdbc, de demander un "desc" / "describe" d'une table ?

    je recherche un truc dans ce style mais qui marche :
    java.sql.Statement st = con.createStatement();
    ResultSet rs = st.executeQuery("desc ma_table");

    sur internet et developpez.net, je n'arrive pas à trouver d'info sur ce qui me semble pourtant un petit problème.

    présisions : serveur tomcat, code dans une jsp, base de données mysql 5

    merci

  2. #2
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Salut,

    Citation Envoyé par 7eme
    je recherche un truc dans ce style mais qui marche :
    java.sql.Statement st = con.createStatement();
    ResultSet rs = st.executeQuery("desc ma_table");
    Je viens de tester (base MySql) et cela marche parfaitement :
    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
            Connection con = ...
            try {
                Statement st = con.createStatement();
                try {
                    ResultSet rs = st.executeQuery("desc ma_table");
                    try {
                        int count = rs.getMetaData().getColumnCount();
                        while ( rs.next() ) {
                            for (int i= 1; i<count; i++) {
                                System.out.print( rs.getString(i) );
                                System.out.print('\t');
                            }
                            System.out.print( rs.getString(count) );
                            System.out.println();
                        }
                    } finally {
                        rs.close();
                    }
                } finally {
                    st.close();
                }
            } finally {
                con.close();
            }
    Sinon tu dois même pouvoir passer par les MetaData :
    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
            Connection con = ...
            try {
     
                ResultSet rs = con.getMetaData().getColumns(null,null,"ma_table",null);
                try {
                    int count = rs.getMetaData().getColumnCount();
                    while ( rs.next() ) {
                        for (int i= 1; i<count; i++) {
                            System.out.print( rs.getString(i) );
                            System.out.print('\t');
                        }
                        System.out.print( rs.getString(count) );
                        System.out.println();
                    }
                } finally {
                    rs.close();
                }
     
            } finally {
                con.close();
            }
    a++

  3. #3
    Membre confirmé
    Avatar de DBProg
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2006
    Messages
    242
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2006
    Messages : 242
    Points : 579
    Points
    579
    Par défaut
    Bonjour,

    adiGuba a déjà très bien répondu. Je veux juste rajouter qu'il faut bien utiliser les Meta Données, et tu as tout ce qu'il te faut dans la FAQ.

    http://java.developpez.com/faq/jdbc/?page=metadata

    Bon courage !

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2002
    Messages : 11
    Points : 12
    Points
    12
    Par défaut
    merci pour vos réponses, je viens de tester avec MySQL 5 et tout fonctionne :-)

    en fait ma précision était fausse puisque j'avais testé avec oracle 8. J'ai alors le retour :
    java.sql.SQLException: ORA-00900: Instruction SQL invalide


    on va migrer la base d'oracle vers mysql d'ici quelques mois. On va dire que ce n'est pas bien grave du moment que ça fonctionne avec MySQL ;-)

    merci,
    g.

  5. #5
    Membre confirmé
    Avatar de DBProg
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2006
    Messages
    242
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2006
    Messages : 242
    Points : 579
    Points
    579
    Par défaut
    Certes, mais tant qu'à faire, si c'est programmé proprement, c'est encore mieux
    Ils ont fait ça pour ce que tu veux faire, alors tu devrais l'utiliser

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

Discussions similaires

  1. [JDBC] pour écouter une table
    Par gocin dans le forum JDBC
    Réponses: 8
    Dernier message: 15/02/2006, 08h26
  2. [JDBC] pour écouter une table
    Par gocin dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 14/02/2006, 20h17
  3. description d'une table
    Par argv666 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 26/12/2005, 13h11
  4. la commande qui permet d'afficher la description d'une table
    Par dor_boucle dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 14/12/2005, 12h54
  5. [JDBC]tester si une table est vide
    Par zozolh2 dans le forum JDBC
    Réponses: 5
    Dernier message: 28/05/2004, 09h17

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