MySql Tabellenübersicht auswerten

Status
Nicht offen für weitere Antworten.

ElBobby

Mitglied
Hallo,

es ist für mein Programm notwendig, dass ich alle Tabellen aus meiner Datenbank auslese.
Das Statement wäre "SHOW TABLES;". Leider kann ich dies nicht auswerten, bzw bekomme eine Exception.

Wie kann ich es bewerkstelligen, dass ich die Tabellennamen alle aus dem Statement auslese?

Gruß, Bob
 

ElBobby

Mitglied
Java:
public String[] getMonate()
	{
		String[] monate = null;
		ResultSet rs = null;
		ResultSetMetaData rsmd = null;
		try
		{
			// Satement erstellen
			Statement st = conn.createStatement();
			// Befehl absetzen
			rs = st.executeQuery("SHOW TABLES;");
			// Metadaten abfragen
			rsmd = rs.getMetaData();
			// String Array erstellen
			monate = new String[rsmd.getColumnCount()];
			// Array befüllen
			while (rs.next())
			{
				for (int i = 1; i < rsmd.getColumnCount(); i++)
				{
					monate[i] = rs.getString(i);
					System.out.println(rs.getString(i));
				}
			}
		} catch (SQLException e)
		{
			e.printStackTrace();
		}

		return monate;
	}

Ok, eine Exception bekomme ich nicht, dafür aber ein leeres Array. Wenn ich den Inhalt einer Tabelle abfrage bekomme ich alle nötigen Daten.
 

madboy

Top Contributor
Auf der Konsole wird auch nichts ausgegeben?
Versuche mal, das Semikolon hinter SHOW TABLES weg zu lassen.
 

ElBobby

Mitglied
Also auf der Konsole wird nichts ausgegeben. Der Debugger sagt auch das es ein leeres Array ist, ebenso wie das ResultSet.
 

Spin

Top Contributor
Ich hatte dass mal für ein Projekt programmiert:

Das speichern und laden ist implementiert für ein Objekt.
Das kann bei dir ja anders heißen, gruß

PS: Natürlich kommentiert ^^

Java:
/**
 * Klasse Datenbank zum Managen aller Datenbankereignisse.
 * Datenbank ansprechen, laden und ändern.
 * Alle Error-Ereignisse werden mit try/catch abgefangen
 */
import java.sql.*;
public class Datenbank {

    /*Instanzvariablen - Datenbank*/
    /* Pfad zu Datenbank*/
    private String url;
    /* Benutzername*/
    private String benutzer;
    /* Benutzerpasswort*/
    private String passwort;
    /* Objekt - Datenbankverbindung*/
    Connection verbinde;
    /* Objekt - Statement für DBAusgabe und DBSpeichern*/
    Statement stmt;

    Produkt p;
    
     public Datenbank(){
         this.url = "jdbc:mysql://localhost/kuehlschranksystem";
         this.benutzer = "root";
         this.passwort = "";
     }


     public void Datenbank_speichern(Produkt p){
        /* try öffnen*/
        try {
            /* Statement formulieren*/
            stmt = verbinde.createStatement();

            /* Lokale Variablen */
            String pr_name = p.getPr_name();
            String pr_beschreibung = p.getPr_beschreibung();
            double pr_preis = p.getPr_preis();
            double pr_menge = p.getPr_menge();
            int pr_barcode = p.getPr_barcode();
            String pr_gruppe = p.getPr_gruppe();

            /* Statement updaten */
            stmt.executeUpdate("INSERT INTO produkt_tab (pr_name,pr_beschreibung,pr_preis,pr_menge,pr_barcode,pr_gruppe) VALUES('" + pr_name + "' , '" + pr_beschreibung + "' , '" + null/*Bild*/ + "' , '" + pr_preis + "' , '" + pr_menge + "' , '" + pr_barcode + "' , '" + pr_gruppe + "')");



            /* Nur Prüfen - später löschen*/
            ResultSet rs = stmt.executeQuery("SELECT * FROM produkt");
            while (rs.next()) {
                System.out.println("Produkt: " + rs.getString("name"));
            }
        }
        /*catch abschließen*/
        catch (SQLException exc) {
            System.err.println(exc.getMessage());
        }

    }

     public Produkt Datenbank_ausgabe(){
         /* try öffnen*/
        try{
         /*Statement formulieren*/
            stmt = verbinde.createStatement();
            /*Formuliertes Statement und Ausgabe einem Ergebnis zurückgeben*/
            /**
             * SELECT * FROM Datenbank
             */
            ResultSet erg = stmt.executeQuery("SELECT * FROM produkt_tab");
            /*Ausgabe*/
             while (erg.next()) {
             /* Produkte füllen mit Argumenten*/
              p = Produkt.erstelleProdukt(erg.getString("pr_name"), erg.getString("pr_beschreibung"),
                          null, erg.getDouble("pr_preis"), erg.getInt("pr_menge"), erg.getInt("pr_barcode"),
                          erg.getString("pr_gruppe"));
              /* Produkt der Produktliste hinzufügen. */
              /* Klassenmethoden aufrufen - static */
              Produktliste.hinzuProduktliste(p);
              /* Ausgabe : Prüfen */
              Produktliste.ausgabeProduktliste();
             /*Daten ans TableModel übergeben*/
             
              

             }

           }
        /*catch abschließen*/
        catch (SQLException exc) {
			System.err.println(exc.getMessage());
	}
         return p;
     }


    

    public void zuDatenbank_verbinden(){
        /* try öffnen*/
        try{
        /*Treiber laden*/
            Class.forName("com.mysql.jdbc.Driver");
        }
        /*catch abschließen*/
        catch (ClassNotFoundException exc){
			System.err.println("Treiber nicht gefunden!" + exc.getMessage());
			System.exit(-1);
	}
        /* try öffnen*/
        try{
            /*Anmelden und Authentifizieren*/
            verbinde = DriverManager.getConnection(getUrl(), getBenutzer(), getPasswort());

        }
        /*catch abschließen*/
        catch (SQLException exc) {
			System.err.println(exc.getMessage());
	}
   }

    /**
     * @return the url
     */
    public String getUrl() {
        return url;
    }

    /**
     * @param url the url to set
     */
    public void setUrl(String url) {
        this.url = url;
    }

    /**
     * @return the benutzer
     */
    public String getBenutzer() {
        return benutzer;
    }

    /**
     * @param benutzer the benutzer to set
     */
    public void setBenutzer(String benutzer) {
        this.benutzer = benutzer;
    }

    /**
     * @return the passwort
     */
    public String getPasswort() {
        return passwort;
    }

    /**
     * @param passwort the passwort to set
     */
    public void setPasswort(String passwort) {
        this.passwort = passwort;
    }
}
 

ARadauer

Top Contributor
Ich hab das mal für ein Projekt gebraucht.. vielleicht hilft dir das... das ließt Tabellen aus einer Oracle DB aus...
Java:
DatabaseMetaData meta = connection.getConnection().getMetaData();
      String schema = "ABCD";
      ResultSet tables= meta.getTables(null,schema,"%",null);
      while(tables.next()) {
         String table = tables.getString(3);
          ResultSet columns = meta.getColumns(null, schema, table, "%");
         ArrayList<String> columnList = new ArrayList<String>();
         while(columns.next()){
            String column = columns.getString(4);
            columnList.add(column);            
         }        
      }  
         
      }

mhn show tables müsste doch auch gehen.... moment

hab jetzt hier leider keine mysql Datenbank und bei oracle gibt es ein show tables...

aber so in der richtung sollte es gehen...

Java:
  public ArrayList<String> getTabellen()
  {
     ArrayList<String> tabellen = new ArrayList<String>();
      ResultSet rs = null;
      try
      {
          // Satement erstellen
          Statement st = conn.createStatement();
          // Befehl absetzen
          rs = st.executeQuery("SHOW TABLES");   
        
          while (rs.next()){
             tabellen.add(rs.getString(1));
          }
      } catch (SQLException e)
      {
          e.printStackTrace();
      }

      return tabellen;
  }
 
Zuletzt bearbeitet:

ElBobby

Mitglied
Wunderbar ! Es klappt.
Der Code :
Java:
{
     ArrayList<String> tabellen = new ArrayList<String>();
      ResultSet rs = null;
      try
      {
          // Satement erstellen
          Statement st = conn.createStatement();
          // Befehl absetzen
          rs = st.executeQuery("SHOW TABLES");   
        
          while (rs.next()){
             tabellen.add(rs.getString(1));
          }
      } catch (SQLException e)
      {
          e.printStackTrace();
      }
 
      return tabellen;
  }

war die Lösung.

Danke.

Kurze Frage noch zum Resultset. Wozu eigentluch der Metadatenumweg?
Und mittels rs.getString() kann ich alle beliebigen Spaltenabgreifen? Zum Beispiel:
Java:
rs.getString("Spalte0")
rs.getString("Spalte1")
rs.next()
rs.getString("Spalte0")
rs.getString("Spalte1")
rs.next()
rs.getString("Spalte n")
rs.getString("Spalte n+1")

Ist das korrekt?
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
Juelin Java und MySQL MariaDB - WHERE-Klausel Datenbankprogrammierung 17
W MySQL-Connector funktioniert nicht über WLAN -> MacOS Datenbankprogrammierung 10
Juelin MySQL Datenbankmit glassfish und Netbeans Datenbankprogrammierung 18
Auf MySql Datenbank zugreifen funktioniert nicht Datenbankprogrammierung 8
TheSkyRider MySQL Datenbankzuordnung in Verbindung mit Java Datenbankprogrammierung 7
Warum funktioniert MySQL nicht Datenbankprogrammierung 8
M MySQL Datenbank in Array Datenbankprogrammierung 2
P MySQL- Neues Passwort Datenbankprogrammierung 1
btwX28 mysql abfrage über phpmyadmin Datenbankprogrammierung 8
sserio SQL oder MySQL Datenbankprogrammierung 44
OnDemand Mysql Query Builder Datenbankprogrammierung 1
Z MySQL "Too many connections" auch nach schliessen der Connections. Datenbankprogrammierung 10
yakazuqi MySQL MySQL Connection reset Datenbankprogrammierung 7
OnDemand MySql Foreign Key nötig oder unnötig Datenbankprogrammierung 3
M Mysql Views und Hibernate Caching Datenbankprogrammierung 4
W MYSQL Datenbank Login Android Datenbankprogrammierung 3
OnDemand MySQL und mongoDB wann macht was Sinn? Datenbankprogrammierung 11
bueseb84 Spring Boot : Update Mysql Datenbank Datenbankprogrammierung 1
Avalon Attribute werden mit Unterstrich in eine MySQL Datenbank eingetragen Datenbankprogrammierung 10
D MYSQL goorm IDE - Wie speichern? Datenbankprogrammierung 0
OnDemand Mysql UPDATE if condition Datenbankprogrammierung 14
D MySQL Geburtsdatum per KW abfragen Datenbankprogrammierung 1
C Java MySQL check if value exists in database Datenbankprogrammierung 2
H Fehler bei getConnection zu MySQL Datenbank Datenbankprogrammierung 18
J MySQL - Primary Key Date,Time vs ID Datenbankprogrammierung 16
ruutaiokwu MySQL: Messwerte, welche stagnieren interpolieren? Datenbankprogrammierung 2
S Datenbank MySQL und Java Datenbankprogrammierung 8
Thallius MySQL JDBC auf Linux Server zu mySQL DB auf anderem Linux Server wirft Access denied Datenbankprogrammierung 5
P Adressadministration mit Java und mySQL Datenbankprogrammierung 14
D MySQL Abfrage Datenbankprogrammierung 5
D MySQL Abfrage sortieren Datenbankprogrammierung 4
platofan23 MySQL Java Programm findet Treiber für mySQL auf Debian-Server nicht? Datenbankprogrammierung 11
J MySQL MySQL Risiken bei Stromausfall minimieren Datenbankprogrammierung 9
D MySQL Abfrage SUM datediff Datenbankprogrammierung 3
H MySQL MySQL - Keine Verbindung zur Datenbank?! Datenbankprogrammierung 4
G MySQL Problem mit MySQL verbindung Datenbankprogrammierung 8
X MySQL Java hat keinen Zugriff auf MySQL Datenbankprogrammierung 9
Z [JDBC][MYSQL] Access denied Datenbankprogrammierung 7
D MySQL Connection richtig herstellen. Wie ? Datenbankprogrammierung 7
D Multiple Connection mit MySQL Datenbankprogrammierung 4
D MySQL Eibinden des "mysql-connector" in eine fertige Jar Datenbankprogrammierung 3
L MySQL Android zu externer MySQL Datenbank verbinden Datenbankprogrammierung 5
P Daten in eine mySQL Datenbank einfügen Datenbankprogrammierung 4
D MySQL Zeilen kumulieren Datenbankprogrammierung 8
D MySQL Abfrage mit kumulierten Werten Datenbankprogrammierung 16
K Servlet-MySQL DB Datenbankprogrammierung 2
X MySQL Json String in MySQL einfügen. Datenbankprogrammierung 20
OnDemand Update auf Mysql läuft nicht durch Datenbankprogrammierung 30
K Java Object mit Hibernate in MySQL abspeichern Datenbankprogrammierung 1
D Datumsformat aus MySQL ändern Datenbankprogrammierung 15
G MySQL Java Problem: Nullpointer Exception obwohl Daten vorhanden sind? Datenbankprogrammierung 2
K MySQL LAN-MySQL Server mit XAMPP Datenbankprogrammierung 2
R ERModel der Datebanken (ORACLE,MySQL,MS-SQL usw) Datenbankprogrammierung 4
X MySQL In MySQL Funktionen erstellen, wenn Zelle leer dann andere Zelle ändern? Datenbankprogrammierung 9
K Anfängerfrage CSV in MySQL Datenbankprogrammierung 41
I MySQL Wert nachträglich bearbeiten Datenbankprogrammierung 1
N MySQL Datenbank lokal Datenbankprogrammierung 3
B MySQL: Port ändern über GUI? Wo und wie Port ändern? Datenbankprogrammierung 0
B MySQL installieren - silent / User anlegen Datenbankprogrammierung 3
X MySQL Verbindungdsaufbau MySql auf Ubuntu-Server Datenbankprogrammierung 10
F MySQL Wie kann ich in Java Datensätze aus einer MySQL Datenbank gezielt in einzelne Arrays schreiben? Datenbankprogrammierung 9
P MySQL JPA / MySQL - Fehler bei type=innoDB Datenbankprogrammierung 8
M MySQL MySQL DATETIME-Import Datenbankprogrammierung 9
P MySQL Connection Global Datenbankprogrammierung 13
J mySQL- Java Application - Zugriff über Internet Datenbankprogrammierung 3
P MySQL-Verbindung in anderer Klasse nutzen Datenbankprogrammierung 2
D JavaFX Anwendung zugriff auf MySQL DB. Datenbankprogrammierung 2
D MySQL Grundsätzliche Fragen zu MySQL Datenbankprogrammierung 3
B MySQL LogIn Daten im Code verstecken Datenbankprogrammierung 3
M MySQL-Syntax-Fehler Datenbankprogrammierung 1
M In MySql Datenbank schreiben Datenbankprogrammierung 6
D mySQL Timestamp in RegularTimePeriod bzw Second Datenbankprogrammierung 3
H SHOW Tables in Java/MySQL Datenbankprogrammierung 8
windl MySQL und HSQLDB Datenbankprogrammierung 4
S Anbindung zur mysql von mit Swing und AWT Datenbankprogrammierung 22
F MySQL+ Netbeans: Datenbanken mit Automatisch generierten Entity Classes get und set Datenbankprogrammierung 2
I MySQL Hibernate / MySQL alias in WHERE clause Datenbankprogrammierung 1
C MYSQL kann wert nicht eintragen Datenbankprogrammierung 3
D Aktualisierung einer ListView mit Daten aus MySQL-DB Datenbankprogrammierung 5
F BPlaced MySql Datenbank ansprechen Datenbankprogrammierung 5
S MySQL MySQL will einfach nicht, bitte um Rat Datenbankprogrammierung 4
M MySQL Datenbank durchsuchen Datenbankprogrammierung 5
Z MySQL mysql Facharbeit: Tipps und Ideen gesucht Datenbankprogrammierung 5
dat_vin JavaFX Datenbankverbindung über JPA und MySQL Error Datenbankprogrammierung 0
K MySQL Datenbank 2facher Zugriff Datenbankprogrammierung 1
Z MySQL Shopsystem mit mysql und Java Datenbankprogrammierung 8
S [MySQL] Topliste Datenbankprogrammierung 2
H Datenbank-Anbindung Java/MySQL Datenbankprogrammierung 2
T MySQL MySQL - Insert into fügt zwei identische Datensätze ein Datenbankprogrammierung 2
A Eine MySQL Zeile mit JDBC löschen Datenbankprogrammierung 5
J Dateien in MySQL speichern & indizieren Datenbankprogrammierung 2
B MySQL MySQL-Abfrage von aufsummierter Zeit Datenbankprogrammierung 3
K MySQL Datenbankbackups Datenbankprogrammierung 5
P MySQL INSERT / UPDATE MySQL - perStoredProcedure oder direkt im Code Datenbankprogrammierung 3
kaoZ HyperSQL vs. MYSQL Datenbankprogrammierung 4
L JSONArray/JSONObject MySQL-Servlet Abfrage Datenbankprogrammierung 2
V Internationalization mit MySql Datenbankprogrammierung 1
K Adressverwaltung mit MySql und Java? Datenbankprogrammierung 11
M Java Mysql verbinden Datenbankprogrammierung 3
L Zugriff auf lokal gespeicherte mySQL Datenbank Datenbankprogrammierung 3

Ähnliche Java Themen


Oben