Spaltennamen ermitteln

Status
Nicht offen für weitere Antworten.

javaant

Mitglied
hi,
möchte aus einer DB-Tabelle (MySQL) die Spaltennamen rausholen und zwar nur die spaltennamen. momentan geh ich mit:

"SELECT * FROM XXX"

auf die DB und frag per ResultSetMetaData die Spaltennamen ab, aber das heisst doch das mit diesem select auch alle Tabellen-Einträge gelesen werden, d.h. wenn ich 1 million einträge hab muss ich erst alle einträge einlesen um dann mit ResultSet.getMetaData() meine daten zu bekommen oder spielt das keine rolle?
ich kann ja mit:

SELECT count(*)... auch die anzahl der einträge zählen und nicht mehr!

dank und gruß
stefan
 

semi

Top Contributor
Lass' mal
Code:
SHOW FIELDS FROM Tabellenname
laufen.
Die Namen der Tabellenfelder stehen dann im ResultSet (als "field").

Edit: Setzt aber voraus, dass der "User", den Du für den mySQL-Zugriff
verwendest, den SHOW-Befehl ausführen darf.

Gruß,
Michael
 

javaant

Mitglied
Da ich auch Oracle im Einsatz habe bin ich nun auch auf der suche nach einem sql-statement auf eine oracle-DB, kann mir da jemand weiterhelfen?

danke im voraus
stefan
 

semi

Top Contributor
Ermittele diese Informationen am besten über das Connection-Objekt bzw. DatabaseMetaData.
Code:
  public static void dumpMetadata(Connection connection) throws SQLException
  {
    StringBuffer out = new StringBuffer(512);
    DatabaseMetaData dbMetaData = connection.getMetaData();
    ResultSet tablesRS = dbMetaData.getTables(connection.getCatalog(), "%", "%", new String[] { "TABLE" });
    while(tablesRS.next())
    {
      String tableName = tablesRS.getString("TABLE_NAME");
      out.append("Tabelle: ").append(tableName).append("\n");
      ResultSet columnsRS = dbMetaData.getColumns(connection.getCatalog(), "%", tableName, "%");
      while(columnsRS.next())
      {
        out.append("   ").append(columnsRS.getString("COLUMN_NAME")).append("\n");
      }
      out.append("\n");
      columnsRS.close();
    }
    tablesRS.close();
    System.out.println(out.toString());
  }
Gruß,
Michael
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Spaltennamen einer MS Access Tabelle ermitteln Datenbankprogrammierung 3
T ResultSet: Spaltennamen ermitteln Datenbankprogrammierung 8
M MySQL Spaltennamen abfragen Datenbankprogrammierung 2
S Spaltennamen "Mapping" Datenbankprogrammierung 5
U MySQL mit prepareStatement den Spaltennamen ansprechen Datenbankprogrammierung 5
Airwolf89 Spaltennamen einer Tabelle zurückgeben lassen Datenbankprogrammierung 9
B Spaltennamen von MySQL Datenbank nach Java auslesen Datenbankprogrammierung 10
P HELP! Tabelle sortieren wenn man auf Spaltennamen klickt SQL Datenbankprogrammierung 2
Dimax MySQL Maximale Datenlänge für eine Spalte einer Datenbank in java ermitteln Datenbankprogrammierung 15
Dimax MySQL 10 höchsten Werte aus einer Tabelle ermitteln Datenbankprogrammierung 30
C PostgreSQL Fremdschlüsseln ermitteln Datenbankprogrammierung 2
C PostgreSQL Anzahl der Spalten ermitteln Datenbankprogrammierung 2
I Oracle Wie ermitteln, welche Benutzer-(!)Tabellen in einer DB sind? Datenbankprogrammierung 1
S select: alle ergebnisse ermitteln Datenbankprogrammierung 5
S Nochmals: ID ermitteln nach Insert Datenbankprogrammierung 2
D Anzahl der Elemente im ResultSet ermitteln Datenbankprogrammierung 8
foobar Freie ID in Tabelle ermitteln Datenbankprogrammierung 8
G Primary key ID ermitteln? Datenbankprogrammierung 2
W ID des letzten eingefügten Werts ermitteln (Oracle) Datenbankprogrammierung 4
B zuletzt eingefügte id ermitteln Datenbankprogrammierung 8
N Hibernate: min und max(pkid) ermitteln Datenbankprogrammierung 8
P Wirkliche Zeilenanzahl eines ResultSets ermitteln Datenbankprogrammierung 22
M Feldname einer Tabelle ermitteln Datenbankprogrammierung 2
G maximale Länge von Spalten ermitteln Datenbankprogrammierung 3
T Aus PLZ Ort ermitteln Datenbankprogrammierung 2
R JDBC-ODBC: Alle ODBC-Datenquellen ermitteln? Datenbankprogrammierung 4
B Zeilenzahl eines ResultSet ermitteln Datenbankprogrammierung 5

Ähnliche Java Themen

Neue Themen


Oben