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 de nom des base presenter dans un serveur base de donnees


Sujet :

JDBC Java

  1. #1
    Nouveau membre du Club
    Étudiant
    Inscrit en
    Juin 2007
    Messages
    29
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2007
    Messages : 29
    Points : 29
    Points
    29
    Par défaut Liste de nom des base presenter dans un serveur base de donnees
    Bonjour ,j'ai travaille sur une application JAVA ,j'ai besoin de connaitre comment trouver la liste de nom des base d'un serveur de BD?
    J'ai essayer avec ce code mais il m'a retourne rien(vide)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    String url = "jdbc:postgresql//";
    String serverName ="localhost";
    String portNumber = "5432";
    String userName = "xx";
    String password = "xx";
    con=java.sql.DriverManager.getConnection(url + this.serverName + ":" +
    this.portNumber + ";",this.userName,this.password);
    DatabaseMetaData bd = con.getMetaData();
    ResultSet résultat = bd.getCatalogs();
    while (résultat.next()) System.out.println(résultat.getString(1));
    Mon base de donnees est postgresql.

    Merci d'avance.

  2. #2
    Membre expérimenté
    Avatar de fabszn
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2002
    Messages
    974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Mars 2002
    Messages : 974
    Points : 1 638
    Points
    1 638
    Par défaut
    Hello,

    Peut-être que cette fonctionnalité n'est pas implantée dans ce driver..

  3. #3
    Nouveau membre du Club
    Étudiant
    Inscrit en
    Juin 2007
    Messages
    29
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2007
    Messages : 29
    Points : 29
    Points
    29
    Par défaut
    Bonjour, juste je veux dire que j'ai testé ce code sur SQL server il marche tres bien, mais il ne marche plus sur postgreSQL.

    Est ce que c'est une probleme de driver comme vous avez dit?

    Merci d'avance.

  4. #4
    Membre éclairé Avatar de zorm
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    584
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 584
    Points : 672
    Points
    672
    Par défaut
    Il est important de charger les drivers effectivement avant de s'occuper de créer une connexion. Java ne va pas deviner tout seul que tu veux utiliser une base prosgres et donc il faut lui dire.

    Pour ceci, il faut d'abord recuperer un driver sur le site de postgres et l'installer dans le classpath de ton projet. Les drivers sont dispo ici:
    http://jdbc.postgresql.org/download.html

    ensuite pour le charger, il faut rajouter dans ton code ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Class.forName("org.postgresql.Driver");
    Pour finir, tu trouveras un exemple de comment créer une connexion postgres ici:
    http://jdbc.postgresql.org/documenta...d/connect.html

    Bonne chance

  5. #5
    Nouveau membre du Club
    Étudiant
    Inscrit en
    Juin 2007
    Messages
    29
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2007
    Messages : 29
    Points : 29
    Points
    29
    Par défaut
    J'ai deja ajouter le driver au bibliotheque,et mon application travaille avec ce pilote correctement.
    voici le code de la partie "bizar" du programme :
    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
    serverName="localhost";
    login="xx";
    password="xx";
    Connection postgres_connection = null;
    
    
    try{
            Class.forName("org.postgresql.Driver");
            postgres_connection = DriverManager.getConnection("jdbc:postgresql://"+this.serverName+"/",login,password);
            DatabaseMetaData meta_data = postgres_connection.getMetaData();
            ResultSet result = meta_data.getCatalogs();
            System.out.println("La liste de bases est :");
            while(result.next()) { System.out.println("Base de donne PostGRES : " + result.getString(1)); }
            
            }catch(Exception e){
                       System.out.println("" + e.getMessage());
                }
    A mon avis le mot cles est getCatalogs.
    RQ: j'ai utilisé driver:postgresql-8.1-410.jdbc3.jar
    Merci beaucoup.

  6. #6
    Membre éclairé Avatar de zorm
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    584
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 584
    Points : 672
    Points
    672
    Par défaut
    Bon, j'ai cherché et cherché et je ne suis pas arrivé à faire ca de facon générique. Mais au moins avec ceci, tu devrais avoir le resultat attendu pour postgres. Effectivement, le driver doit pas etre au point pour gerer ca :
    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
     
            String serverName = ***;
            String login = ***;
            String password = ***;
            Connection postgres_connection = null;
     
            try {
                Class.forName("org.postgresql.Driver");
                postgres_connection = DriverManager.getConnection("jdbc:postgresql://"
                    + serverName + "/", login, password);
                Statement statement = postgres_connection.createStatement();
                String sql = "SELECT datname FROM pg_database";
                ResultSet result = statement.executeQuery(sql);
                System.out.println("La liste de bases est :");
                while (result.next()) {
                    System.out.println("Base de donne PostGRES : " + result.getString(1));
                }
     
            } catch (Exception e) {
                System.out.println("" + e.getMessage());
            }

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 29/03/2010, 11h12
  2. Réponses: 3
    Dernier message: 19/01/2010, 09h53
  3. Réponses: 3
    Dernier message: 19/06/2007, 14h07
  4. Réponses: 2
    Dernier message: 06/04/2007, 11h48
  5. fonction qui met en liste les noms des fichiers
    Par aliassaf dans le forum Général Python
    Réponses: 2
    Dernier message: 22/06/2006, 11h50

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