package dbinfo; import java.sql.Connection; import java.sql.DatabaseMetaData; import java.sql.DriverManager; import java.sql.ResultSet; public class DatabaseInfos { public static void main(String[] args) { try { Class.forName("org.postgresql.Driver"); Connection con = DriverManager.getConnection( "jdbc:postgresql:test", "postgres", "postgres"); // Zuerst brauchen wir die Referenz auf die Metadaten // der Datenbank DatabaseMetaData data = con.getMetaData(); // Dann können mit den Methoden von DatabaseMetaData // alle möglichen Informationen abgefragt werden System.out.println( "Database product name : " + data.getDatabaseProductName()); System.out.println( "Database product version: " + data.getDatabaseProductVersion()); System.out.println( "JDBC driver : " + data.getDriverName()); System.out.println( "JDBC driver version : " + data.getDriverVersion()); // Ueber getCatalogs kann man dann die verfügbaren // Datenbanken und Tabellen erfragen. // Zuerst mal alle Datenbanken System.out.println("Available Catalogs:"); ResultSet result = data.getCatalogs(); while (result.next()) { System.out.println("-" + result.getString(1)); } result.beforeFirst(); while (result.next()) { // Dann alle Tabellen in der jeweiligen Datenbank System.out.println( "Tables in Catalog '" + result.getString(1) + "'"); ResultSet resultTables = data.getTables( result.getString(1), null, null, null); while (resultTables.next()) { // Letzendlich alle Felder in der jeweiligen // Tabelle System.out.println( " Table '" + resultTables.getString("TABLE_NAME") + "'"); ResultSet resultCols = data.getColumns( result.getString(1), null, resultTables.getString("TABLE_NAME"), null); while (resultCols.next()) { System.out.println( " " + resultCols.getString( "COLUMN_NAME") + ", " + resultCols.getString("TYPE_NAME")); } } } } catch (Exception e) { e.printStackTrace(); } } }