有直接的sql语句可以实现的,但是就是对存储的结果集有点难以处理!mysql> show tables;oracle > desc table;

解决方案 »

  1.   

    public void getDBTable(String DataSource, String DBName)
    {
    try{
    Class.forName( "sun.jdbc.odbc.JdbcOdbcDriver" );
    Connection con = DriverManager.getConnection( "jdbc:odbc:" + DataSource );
    DatabaseMetaData dmd = con.getMetaData();
    ResultSet rs = dmd.getTables( DBName, null, null,new String[] {"TABLE"});
    while ( rs.next() )
    {
    System.out.println( rs.getString( "TABLE_NAME" ) );
    }
    rs.close();
    }
    catch( ClassNotFoundException e)
    {
    System.out.println( e );
    }
    catch(SQLException e)
    {
    System.out.println( e );
    }
    }
    不知道这个你用不用得着
      

  2.   

    DatabaseMetaData dmd = con.getMetaData();
    ResultSet rs = dmd.getTables( DBName, null, null,new String[] {"TABLE"});DatabaseMetaData 是什么啊?new String[] {"TABLE"}); 什么意思啊??
      

  3.   

    对于DB2来说,他对每一个数据库都提供了一些系统表(好久没用了,具体的表名忘了),可以直接用select 取出所有的表名来。
      

  4.   

    oracle select * from tab;
      

  5.   

    new String[] {"TABLE"}); 什么意思啊??
    代表用户的表,不包括系统的表
      

  6.   

    谢谢 pingfan520(平凡) ,问题解决了。
    new String[] {"TABLE"}); 的功能就是取得用户的表,如果是这样:
    ResultSet rs = dmd.getTables( null, null, null,null);
    那么取得的就是所有的表,包括系统的表。