DbMeta.java

import java.io.*;
import java.util.*;
import java.sql.*;
 
/**
Extract database metadata -- list all tables in database.
*/
class DbMeta
{
    public static void main(String args[])
    {   
        // JDBC driver and DSN for HSQLDB server.
        String driver = "org.hsqldb.jdbcDriver";
        String dsn = "jdbc:hsqldb:hsql://localhost:9001";

        Connection conn;
        Statement stat;
        DatabaseMetaData meta;
        ResultSet rs;

        try {
            Class.forName(driver);
            conn = DriverManager.getConnection(dsn,"sa","");

            meta = conn.getMetaData();

            // Return all catalogs, all schemas, all tables, all types.
            rs = meta.getTables(null,null,null,null);

            System.out.println("TABLE_NAME, TABLE_TYPE");
            System.out.println("==========, ==========");
            while (rs.next()) {
                System.out.println(
                    rs.getString(3) + ", " + rs.getString(4));
                }

            conn.close();
            }
        catch (SQLException ex) {
            // Note the use of nested exceptions!
            while (ex != null) {  
                ex.printStackTrace();
                ex = ex.getNextException();
                }
            }
        catch (ClassNotFoundException ex) {
            ex.printStackTrace();
            }
    }
}