如题 !!!
    又如何从已知的数据库中得到所有的表的名称呢 ???  
 偶刚学   好多不懂  谢谢啦 

解决方案 »

  1.   

    只能得到hibernate映射了的字段名: 去看看Configuration类的方法.
      

  2.   

    jdbc 查询
    MySQL 获取表名: 用“show tables”命令。在程序中也可以采用该命令获取,在返回的RowSet中的“Tables_in_db”读出来。其中“db”是指你的数据库的名称,比如说Tables_in_productdb。 获取某个表的字段:        用“desc tablename”命令。取得方式和上面类似。               此外,还可用MySQL数据库系统表取得,在information_schema库中有系统中的一些基础性表,比如说TABLES\COLUMNS。但一般情况下,程序只访问本库中的表,所以不建议采用这种方式取得。 
    2、SQLSERVER        SQLSERVER中也有数据库系统表,有相应权限时可以直接访问。        获取表名:        通过查询sysobjects表取得,它记录了系统中的对象。具体的访问方式如下: select name from sysobjects where xtype='U' 
           其中name得到的即表名。        XType='U':表示所有用户表; XType='S':表示所有系统表。 
           获取某个表的字段:        SystemColumns表记录了数据库中的列信息。具体调用方式: Select Name from SysColumns Where id=Object_Id('test') 
           3、ORACLE        获取表名:        Oracle的user_talbes用于记录了用户表信息。 select * from user_tables 
           获取某个表的字段: USER_TAB_COLS中记录了用户表的列信息。 
    SELECT USER_TAB_COLS.TABLE_NAME as 表名,    USER_TAB_COLS.COLUMN_NAME as 列名 , USER_TAB_COLS.DATA_TYPE as 数据类型,    USER_TAB_COLS.DATA_LENGTH as 长度,    USER_TAB_COLS.NULLABLE as 是否为空,USER_TAB_COLS.COLUMN_ID as 列序号,    user_col_comments.comments as 备注 FROM USER_TAB_COLS inner join user_col_comments on user_col_comments.TABLE_NAME=USER_TAB_COLS.TABLE_NAME and user_col_comments.COLUMN_NAME=USER_TAB 
      

  3.   

    请看下面例子.   
        
      import   java.sql.*;   
      import   java.util.*;   
      import   com.microsoft.*;   
        
      public   class   SQLServerTest   {   
        
              private   static   ArrayList   al=   new     ArrayList();   
        
              public   static   void   main(String[]   args)   {   
        
                      try{   
                              Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();   
                              String   url="jdbc:microsoft:sqlserver://SaisanSvr:1433;DatabaseName=GenKa";   
                              String   user="sa";   
                              String   password="111";   
        
                              Connection   conn=   DriverManager.getConnection(url,user,password);   
                              Statement   stmt=conn.createStatement();   
                              String   sql="select   *   from   test1";   
                              ResultSet   rs=stmt.executeQuery(sql);   
                              ResultSetMetaData   rsmd   =   rs.getMetaData();   
      //获取字段名   
                              String   sName   =   rsmd.getColumnName(1);   
                              while(rs.next())   {   
                                      System.out.println(rs.getString("test"));   
                              }   
                      }catch(Exception   e){   
                              e.printStackTrace();   
                      }   
        
              }   
        
      }       用DriverManager.getConnection()得到connect,   
      用connect.getMetaData()得到   DatabaseMetaData,   
      用   DatabaseMetaData.getColumns(String   catalog,   String   schemaPattern,   String   tableNamePattern,   String   columnNamePattern)得到相应字段的ResultSet。   
      用ResultSet.getMetaData()   得到ResultSetMetaData。   
      用ResultSetMetaData.getColumnType()得到一个int,在Types类中找到数据类型。
      

  4.   

    ResultSetMetaData 这个对象可以得到所有的列明。可以看下反射
     楼上的写的Good,学习一下