0

我有一个应用程序,我需要每三天左右创建一个新表。每个表都会有一些信息。

一个月或一段时间后,我可能决定对我最初创建的数据库的所有表运行一些统计数据,以便找出一些结果。

然而,统计数据将显示数据在几天内的变化情况。所以让我们假设在第一天我们创建了第一个名为“date_1”的表

第三天“date_3”、第六天“date_6”、第九天“date_9”和第十二天“date_12”。实际上,“date_”字符串后面的数字将是真实日期,我也可以在两天或一天后创建另一个表,不一定是三天。

现在假设在第 13 天我决定运行统计数据。找出数据库中可用表的一种方法是运行以下代码:

  public void printTables(){

    static Connection conn;
    String driver = "org.apache.derby.jdbc.EmbeddedDriver";
    String connectionURL = "jdbc:derby:myDB;create=true";
   try {
        conn = DriverManager.getConnection(connectionURL);
        DatabaseMetaData dbmd = conn.getMetaData();
        ResultSet resultSet = dbmd.getTables(null, null, null,
                new String[] { "TABLE" });
        int tableCount = 0;
        while (resultSet.next()) {
            System.out.println(resultSet.getString("TABLE_NAME"));
            tableCount++;
        }
       }catch (Exception e) {
        e.printStackTrace();
    }
  }

现在的问题是,以下代码按字母顺序返回表格,这意味着我们将打印以下表格:

 date_1
 date_12
 date_3
 date_6
 date_9

但是我需要它们按以下顺序

 date_1
 date_3
 date_6
 date_9
 date_12

因此,如果我以第二个顺序获得表名,我可以简单地为每个返回的表运行适当的选择语句,进行统计并打印正确的结果。所以我的问题是,是否可以按创建日期而不是简单地按名称(字符串)按升序获取表格?

4

0 回答 0