# Datenbanknamen eines Datenbankservers auslesen



## tobitobsen82 (7. Nov 2007)

Hallo,

wie kann ich, nachdem eine Verbindung zu einem DB-Server, nicht jedoch auf eine explizite Datenbank, hergestellt wurde, die auf diesem Server unter meinem Username und Password abgelegten Datenbanken (also die Namen der Datenbanken) auslesen?

Besten Dank für Eure Hilfe!

Tobias


----------



## tuxedo (7. Nov 2007)

SQL:

```
show databases;
```

Wie das allerdings mit JDBC geht: Keine Ahnung. Glaub man MUSS ja eine DB angeben wenn man sich verbindet, oder?

- Alex


----------



## tobitobsen82 (7. Nov 2007)

Also ich kann auch eine Verbindung nur zum Datenbankserver herstellen ohne eine konkrete Datenbank anzugeben.

Werde mal versuchen, ob ich da ein SQL Statement absetzen kann und berichte dann.


----------



## maki (7. Nov 2007)

Sieh dir doch mal DatabaseMetaData an.


----------



## tobitobsen82 (7. Nov 2007)

Hab ich schon. Leider gibts da kein getDatabaseNames() o.ä. wie z. B. getTables()


----------



## maki (7. Nov 2007)

Das sollte auh Schemas heißen.


----------



## tobitobsen82 (7. Nov 2007)

Wenn ich getSchemas() verwende, bekomme ich keinen Output


----------



## Guest (7. Nov 2007)

Was kommt bei getCatalogs()?


----------



## *Hendrik (7. Nov 2007)

Das hier funktioniert z.B. bei MySQL:

```
String db = "jdbc:mysql://localhost";
      String user ="benutzer";
      String pw = "passwort";

      try  {

         verbindung = DriverManager.getConnection(db,user,pw);         
         Statement stm = verbindung.createStatement();

         String sql ="Select distinct table_schema From Information_schema.tables;";

         ResultSet ergebnis = stm.executeQuery(sql);        

                  
         while(ergebnis.next() == true) {
            System.out.println(ergebnis.getString("table_schema"));
         }

         verbindung.close();
      } catch(Exception e) {
         System.out.println("Exception " + e);
      }
```


EDIT: Oder "SELECT S.SCHEMA_NAME FROM information_schema.SCHEMATA S;" und System.out.println(ergebnis.getString("SCHEMA_NAME"));


----------



## tobitobsen82 (7. Nov 2007)

Danke für die Antwort!

Mit SHOW DATABASES konnte ich ebenfalls das Gesuchte finden.


----------

