Avatar billede mmbn Nybegynder
23. april 2004 - 15:57 Der er 7 kommentarer og
1 løsning

udskrive alle tabelnavnene

Jeg er lige begyndt at lege med jdbc. Hvis man skal hente alle tabel navnene i en database og udskrive dem, hvordan gør man så?? Ville gerne se eksempel på på selve query'ien og hvordan man så henter dem. Har hørt noget med at man skal bruge metadata og "getcoloumnName"??
Avatar billede arne_v Ekspert
23. april 2004 - 16:05 #1
Hvis du vil vide hvilke felter en given query returnerer så ka du bruge
rs.getMetaData() og så getColumnCount() og getColumnName() på det ResultSetMetaData
som returneres fra den.

Hvis du vil vide hvilke tabeller der er i databasen, så skal du lave en speciel
query, der så vidt jeg ved er database specifik. Hvis du fortælle rhvilken database
du bruger, så kan vi sikkert finde en løsning.
Avatar billede mmbn Nybegynder
23. april 2004 - 16:07 #2
jeg bruger mysql
Avatar billede mmbn Nybegynder
23. april 2004 - 16:08 #3
indtil videre har jeg fumlet mig frem til denne løsning:
public void getColName(String ur1, String TabelInfo)
        {
          String[] col = {};
        try
          {
            con = DriverManager.getConnection(ur1, "", "");
            stmt = con.createStatement();
            svar = stmt.executeQuery(TabelInfo);
            ResultSetMetaData meta = svar.getMetaData();
            int ncol = meta.getColumnCount();

            for (int i = 1; i < ncol; i++)
            {
              col[i] = meta.getColumnName(i);
              System.out.println(col[i].toString());
            }
          }
          catch(SQLException e)
          {
              System.out.println("SQL fejl :" + e.getMessage());
          }
        }
men den virker ikke, får følgende fejl:
java.lang.ArrayIndexOutOfBoundsException: 1
Avatar billede arne_v Ekspert
23. april 2004 - 16:10 #4
String[] col = {};

laver et array med ingen elementer i.
Avatar billede arne_v Ekspert
23. april 2004 - 16:11 #5
public void getColName(String ur1, String TabelInfo)
        {
        try
          {
            con = DriverManager.getConnection(ur1, "", "");
            stmt = con.createStatement();
            svar = stmt.executeQuery(TabelInfo);
            ResultSetMetaData meta = svar.getMetaData();
            for (int i = 1; i < meta.getColumnCount(); i++)
            {
              System.out.println(meta.getColumnName(i));
            }
          }
          catch(SQLException e)
          {
              System.out.println("SQL fejl :" + e.getMessage());
          }
        }
Avatar billede arne_v Ekspert
23. april 2004 - 16:12 #6
for (int i = 1; i <= meta.getColumnCount(); i++)
Avatar billede mmbn Nybegynder
23. april 2004 - 16:40 #7
Superb :)

takker mange gange har siddet længe fast.

Smid lige et svar så du kan få pointene
Avatar billede arne_v Ekspert
23. april 2004 - 16:47 #8
svar
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester