Avatar billede karsekongen Nybegynder
29. juni 2006 - 18:06 Der er 8 kommentarer

Mysql: show tables

Hej

Jeg skal på min webside bruge en liste over tabellerne i min mySQL database. Hvordan gør jeg det?

Min kode indtil videre:

  Class.forName("com.mysql.jdbc.Driver");
  Connection con = DriverManager.getConnection("jdbc:mysql:///billeder", "******", "***********");
  DatabaseMetaData dmd = con.getMetaData();
  ResultSet Rs = dmd.getTables(??????);

Er det rigtigt?
Hvordan læser jeg dmd??
Avatar billede arne_v Ekspert
29. juni 2006 - 18:53 #1
Helt som for andre ResultSet:

while(rs.next()) {
  int iv = rs.getInt(icolno);
  String sv = rs.getString(scolno);
  ...
}
Avatar billede karsekongen Nybegynder
29. juni 2006 - 19:15 #2
Tak for svaret, men jeg har brug for lidt mer hjælp.
Jeg har brug for lidt mere hjælp ;)

hvilke parametre skal jeg sætte dmd.getTables() til?

ResultSet rs = dmd.getTables("billeder", null, null, null); <-- er det rigtig hvis jeg vil udskrive alle tabellerne i databasen billeder?

while(rs.next()) {
  int iv = rs.getInt(icolno); 
  String sv = rs.getString(scolno); <- hvilken værdi skal jeg skrive i getString???
Avatar billede arne_v Ekspert
29. juni 2006 - 20:03 #3
ResultSet rs = dmd.getTables("billeder", null, '%', null);

tror jeg
Avatar billede arne_v Ekspert
29. juni 2006 - 20:05 #4
docs har kolonne numrene:

Each table description has the following columns:

TABLE_CAT String => table catalog (may be null)
TABLE_SCHEM String => table schema (may be null)
TABLE_NAME String => table name
TABLE_TYPE String => table type. Typical types are "TABLE", "VIEW", "SYSTEM TABLE", "GLOBAL TEMPORARY", "LOCAL TEMPORARY", "ALIAS", "SYNONYM".
REMARKS String => explanatory comment on the table
TYPE_CAT String => the types catalog (may be null)
TYPE_SCHEM String => the types schema (may be null)
TYPE_NAME String => type name (may be null)
SELF_REFERENCING_COL_NAME String => name of the designated "identifier" column of a typed table (may be null)
REF_GENERATION String => specifies how values in SELF_REFERENCING_COL_NAME are created. Values are "SYSTEM", "USER", "DERIVED". (may be null)
Note: Some databases may not return information for all tables.
Avatar billede arne_v Ekspert
29. juni 2006 - 20:06 #5
kolonne 3 er vist den du skal bruge
Avatar billede karsekongen Nybegynder
29. juni 2006 - 21:45 #6
Har fundet ud af det...
KODE:
<%
  Class.forName("com.mysql.jdbc.Driver");
  Connection con = DriverManager.getConnection("jdbc:mysql:///billeder", "****", "****");
  DatabaseMetaData dmd = con.getMetaData();
  ResultSet rs = dmd.getTables("billeder", null, null, null);


while (rs.next())
{
out.println("<br>"+rs.getString(3)); 
}

%>
GetString() skulle være 3, var det det du mente med at jeg skulle bruge kollonne tre??
Det fattede jeg bare ikke...hehe ;) troede det hvade noget at gøre med getTables.
Takker mange gange for de gode (og hurtige) svar.
Avatar billede arne_v Ekspert
29. juni 2006 - 22:10 #7
jeps

:-)
Avatar billede arne_v Ekspert
29. juni 2006 - 22:10 #8
og et rigtigt 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