【问题标题】:Display tables of a database in java在java中显示数据库的表
【发布时间】:2015-07-02 19:31:02
【问题描述】:

我正在开发一个java应用程序,我想显示Mysql数据库中的表列表,我在网上搜索,我发现“SHOW TABLES FROM [DB]”是合适的请求,但是如何在 java swing/awt 应用程序上显示最后的结果, PS:我试图将请求的结果放在结果集上,

res = sta.executeQuery("SHOW TABLES FROM sinpec ");

但它不起作用......

我该如何继续?

【问题讨论】:

  • 在循环中读取resultset并将值传递给适当的视图。

标签: java mysql swing awt resultset


【解决方案1】:

请试试这个查询:-

SELECT TABLE_NAME 
FROM INFORMATION_SCHEMA.TABLES 
WHERE table_schema = "DATABASE_NAME"

【讨论】:

  • 如果这是一行答案,最好输入评论。
【解决方案2】:

根据this博客,可以使用如下语句:

SELECT table_name FROM information_schema.tables WHERE table_type = 'base table' AND table_schema='test';

这似乎与SHOW TABLES的效果相似。

这应该适用于您正在使用的结果。

【讨论】:

    【解决方案3】:

    This example 可以帮助你。基本上你可以使用DatabaseMetaData 类来完成你的任务。

    public static String SCHEMA_NAME="${YOUR_SCHEMA_NAME}";
    
     public static void main(String[] args) {
    
      //create and setup your database and get db connection
      DataBase db = new DataBase();
      db.init();
    
      try {
       Connection con = db.getConnection();
        DatabaseMetaData metaData = con.getMetaData();
    
        String tableType[] = {"TABLE"};
    
        StringBuilder builder = new StringBuilder();
    
       ResultSet result = metaData.getTables(null,SCHEMA_NAME,null,tableType);
        while(result.next())
        {
         String tableName = result.getString(3);
    
         builder.append(tableName + "( ");
         ResultSet columns = metaData.getColumns(null,null,tableName,null);
    
         while(columns.next())
         {
          String columnName = columns.getString(4);
          builder.append(columnName);
          builder.append(",");
         }
         builder.deleteCharAt(builder.lastIndexOf(","));
         builder.append(" )");
         builder.append("\n");
         builder.append("----------------");
         builder.append("\n");
    
    
        }
    
       System.out.println(builder.toString());
    
    
      } catch (SQLException e) {
       // TODO Auto-generated catch block
       e.printStackTrace();
      }
    
    
     }
    

    【讨论】:

      【解决方案4】:

      你可以试试这个显示所有表格的解决方案

      try {
          DbMd = myconn.getMetaData();
          Rslt = DbMd.getTables(null, null, "%", null);
      
          while (Rslt.next()) {
              System.out.println(Rslt.getString(3));
          } 
      }
      catch (SQLException e) {
          // TODO Auto-generated catch block
          e.printStackTrace();
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-09-13
        • 2019-04-08
        • 1970-01-01
        • 1970-01-01
        • 2017-05-22
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多