[JAVA] JDBC

Pagina: 1
Acties:

  • Nexopheus
  • Registratie: Juni 2001
  • Laatst online: 28-01 13:50
Ik wil graag het aantal rijen van een tabel weergeven, dit is normaal niet een probleem, maar nu wel. Omdat de tabellen zelf in een resultSet zitten.

code:
1
2
3
4
5
6
7
8
9
10
11
12
DatabaseMetaData dmd = con.getMetaData();
            ResultSet uprs = dmd.getTables(null,null,null,null);
            int tablecnt = 0;
            ResultSetMetaData rsmd;
            while(uprs.next())
            {
                rsmd = uprs.getMetaData();
                
                
                tablecnt ++;
            }
            System.out.println("Aantal tabellen: " + tablecnt);


Hoe krijg ik nu van alle tabellen de RowCount ?
Zal wel iets doms zijn, maar ik zie het niet.

Wat niet kan is nog nooit gebeurd


  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024

Alarmnummer

-= Tja =-

Jij wilt dus weten hoeveel records er in iedere tabel zitten?

Als dit zo is, dan moet je inderdaad eerst de tables ophalen. En dan moet je dus voor iedere table een 'select * from table' doen, waaruit je dus het aantal kan opmaken. Eventueel zou je ook een count * from table kunnen uitvoeren :)

Pas trouwens wel een beetje op met die getTables want je krijgt soms ook allerlei tijdelijke tables erbij (tables die gebruikt zijn voor andere bewerkingen).

  • Nexopheus
  • Registratie: Juni 2001
  • Laatst online: 28-01 13:50
Probleem is echter dat ik 501 tabellen heb. Dit wordt een beetje lastig :-)

Wat niet kan is nog nooit gebeurd


  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024

Alarmnummer

-= Tja =-

Nexopheus schreef op 03 oktober 2002 @ 14:48:
Probleem is echter dat ik 501 tabellen heb. Dit wordt een beetje lastig :-)
Hmmzz.. leuk database ontwerp ;)

Maar wat maakt het verder uit dat het 501 tabellen zijn? De computer die rekent wel, daar is ie tenslotte voor gemaakt :)

  • Nexopheus
  • Registratie: Juni 2001
  • Laatst online: 28-01 13:50
Alarmnummer schreef op 03 oktober 2002 @ 14:49:
[...]

Hmmzz.. leuk database ontwerp ;)

Maar wat maakt het verder uit dat het 501 tabellen zijn? De computer die rekent wel, daar is ie tenslotte voor gemaakt :)
Tuurlijk dat rekenen is geen probleem.
Maar 501 keer select * from table intikken gaat mij een beetje te ver.
De tabelnaam ophalen vanuit de ResultSetMetaData lukt ook niet helemaal, anders kan het op die manier......

Wat niet kan is nog nooit gebeurd


  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024

Alarmnummer

-= Tja =-

Je kan een select query genereren op basis van table naam. Je haalt dus eerst even alle tables op, en daarna ga je in een lus een select statement genereren + uitvoeren voor iedere table zodat je de count per table weet.

  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024

Alarmnummer

-= Tja =-

Nexopheus schreef op 03 oktober 2002 @ 14:52:
[...]


Tuurlijk dat rekenen is geen probleem.
Maar 501 keer select * from table intikken gaat mij een beetje te ver.
De tabelnaam ophalen vanuit de ResultSetMetaData lukt ook niet helemaal, anders kan het op die manier......
Ik heb een tijd geleden veel met metadata gewerkt, en kan in nagenoeg iedere database enorm veel meta data trekken. Alleen met access had ik problemen om de relaties eruit te trekken. Maar tabellen en columns waren geen probleem.

  • Nexopheus
  • Registratie: Juni 2001
  • Laatst online: 28-01 13:50
Alarmnummer schreef op 03 oktober 2002 @ 14:54:
Je kan een select query genereren op basis van table naam. Je haalt dus eerst even alle tables op, en daarna ga je in een lus een select statement genereren + uitvoeren voor iedere table zodat je de count per table weet.
Juist, klopt helemaal. Probleem is echter dat ik de tabel namen niet te pakken krijg.
Enig idee? DatabaseMetaData heeft een methode getTables, hierbij komen een aantal omschrijvingen terug per tabel. Ook de naam. (3 TABLE_NAME). Alleen krijg ik de inhoud van deze column niet !!!

Wat niet kan is nog nooit gebeurd


  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024

Alarmnummer

-= Tja =-

dit gebruik ik om tables eruit te halen:
ResultSet tablesResultSet = databaseMetadata.getTables(null, null, null, new String[]{"TABLE"});

en dan met een while lus alle elementen bijlangs, en dan in de lus:
final int TABLE_NAME = 3;
String tableName = tablesResultSet.getString(TABLE_NAME);

  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024

Alarmnummer

-= Tja =-

En als je verder alleen geinteresseerd bent in de count, dan hoef je toch geen columns te weten? Je kan gewoon een 'count * from tableName' doen.

  • Nexopheus
  • Registratie: Juni 2001
  • Laatst online: 28-01 13:50
Alarmnummer schreef op 03 oktober 2002 @ 15:00:
dit gebruik ik om tables eruit te halen:
ResultSet tablesResultSet = databaseMetadata.getTables(null, null, null, new String[]{"TABLE"});

en dan met een while lus alle elementen bijlangs, en dan in de lus:
final int TABLE_NAME = 3;
String tableName = tablesResultSet.getString(TABLE_NAME);
ARRRGGGGGGGGGGHHHHHHHHHHHHHHH
Tuurlijk!!!

Werkt.. thx

Wat niet kan is nog nooit gebeurd


  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024

Alarmnummer

-= Tja =-

weer iemand tevreden ;)
Pagina: 1