# SHOW Tables in Java/MySQL



## Halo1982 (10. Sep 2015)

Hallo
ich versuche im Moment, das ich über Java auf MySQL zugreifen kann. Es wird langsam besser, aber ich scheitere an dem Versuch, mit dem Befehl SHOW TABLES die Tabellen meiner Datenbank anzeigen zu lassen.

Wie muss ich den Befehl schreiben, um die Namen der Tabellen in Java nutzen zu können, am besten in einem String ARRAY?


----------



## Maggot (10. Sep 2015)

Hallo. Ich glaube das ist genau was du suchst...

http://stackoverflow.com/questions/2780284/how-to-get-all-table-names-from-a-database


----------



## Halo1982 (10. Sep 2015)

Danke, das sieht passend aus, leider arbeite ich mit BlueJ und das Programm sagt das die Klasse DatabaseMetaData nicht existiert. Ideen?


----------



## Joose (10. Sep 2015)

Halo1982 hat gesagt.:


> ... sagt das die Klasse DatabaseMetaData nicht existiert. Ideen?



Dann fehlt dir wahrscheinlich ein import.Hierbei ist es immer hilfreich die Fehlermeldung so exakt wie nur möglich wiederzugeben

Anmerkung: BlueJ ist zwar nicht so schlecht um Java zu lernen und üben. Aber je komplexer die Anwendungen werden umso besser wäre es auf eine IDE ala Eclipse oder NetBeans umzusteigen.


----------



## Tom299 (10. Sep 2015)

Anstatt Show Tables kannst du z.B. folgendes nutzen:


```
SELECT table_name
FROM INFORMATION_SCHEMA.TABLES
WHERE Table_schema like '%db_name%';
```

Über das Information-Schema kannst du Tabellen, Spalten usw. abfragen. Show Tables macht vermutlich nichts anderes als über dieses Schema die Abfrage zu generieren.
Ob das mit BlueJ geht, weiß ich nicht, kenn ich auch nicht.


----------



## JStein52 (12. Sep 2015)

Ich weiss nicht ob du dein Problem gelöst hast, eine Rückmeldung ist immer hilfreich. Aber dir fehlt:

import java.sql.DatabaseMetaData;


----------



## Halo1982 (14. Sep 2015)

Nach einem Wochenende Denkpause sitze ich wieder dran und hoffe, es heute zu lösen  
Ich melde mich


----------



## Halo1982 (14. Sep 2015)

Ok, gelöst, ich arbeite mit show tables und nutze dann folgenden Code:

```
resultSet = statement.executeQuery("show tables");
      while (resultSet.next())
      {
      String tabname = resultSet.getString("Tables_in_"+dbName);
      }
```
durch ein MySQL tool habe ich herausgefunden, unter welchem Namen das ganze gespeichert wird und das dann einfach angepasst


----------



## thet1983 (14. Sep 2015)

geht mich zwar nichts an aber warum machst du nicht gleich so??


```
resultSet = statement.executeQuery("show tables in "+dbName);
      while (resultSet.next())
      {
      String tabname = resultSet.getString(1);
      }
```


----------

