Spaltennamen einer Tabelle zurückgeben lassen

Airwolf89

Aktives Mitglied
Hi,

ich hätte da mal eine Frage.
Ist es irgendwie möglich mit ner Methode oder so mir die Spaltennamen einer Tabelle zurückgeben zu lassen. Also dass ich die Namen dann in nem Array oder sonst was habe.
Gibt es sowas?

Danke im voraus.
 
Mhmm mit [c]ResultSetMetaData[/c] und [c]getColumnName(index)[/c] sollte das gehen:
Java:
		ResultSet rs = stmt.executeQuery("SELECT * FROM TABLENAME");
        ResultSetMetaData md = rs.getMetaData();
        for (int i = 1; i <= md.getColumnCount(); i++){
          System.out.println(md.getColumnName(i));
        }
 
Hi,

habe folgendes ausprobiert:

Java:
     public String[] getColumnNames(String tblName) {

        String[] arr = null;
        String query = "Select * from " + tblName;
        ResultSet rs = null;

        try {
            rs = getObjekte(query); //Methode für die Abfrage, query ist die SQL-Abfrage
            ResultSetMetaData rsmd = rs.getMetaData();
            arr = new String[rsmd.getColumnCount()];
            
            for (int i = 0; i < rsmd.getColumnCount(); i++) {
                arr[i] = rsmd.getColumnName(i);
            }

        } catch (SQLException ex) {
            Logger.getLogger(DBConn.class.getName()).log(Level.SEVERE, null, ex);
        }
        return arr;
    }

Problem ist aber dass ich bei getColumnName nix kriege, bekomme da ne Exception:

Code:
>Exception occurred in target VM: Column index out of range.

Im ResultSet und auch in den Metadaten sind aber alle daten korrekt vorhanden. Was ist da los?

Danke im voraus.
 
Im Gegensatz zu den Indizes bei Arrays fangen die Indizes bei ResultSets mit 1 und nicht mit 0 an.

Noch als Info:
Abhängig von der DB gibt's u.U. auch Systemtabellen, die Dir die Spaltennamen und sonstige Infos zu den Tabellen liefern.
 
Hmm, ok danke, gut zu wissen.

Zu den Systemtabellen, habe für meine DB sowas noch nicht gefunden, benutze MySQL, mit XAMPP installiert, gibt's da sowas? Wie könnte ich da drauf zugreifen?
 
Habe hauptsächlich mit Oracle zu tun und bin daher in mySql nicht so bewandert, aber es gibt da ein Information_Schema mit diversen Tabellen.
Kannst ja mal probieren, was z.B. folgendes liefert:
SQL:
Select * From Information_Schema.Columns
 

Neue Themen


Zurück
Oben