Java DerbyDB:如何逐个获取数据库的所有表,并按创建日期的升序排列?

时间:2012-09-28 21:39:42

标签: java database date derby

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

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

然而,统计数据将显示数据在整个日子里的变化情况。因此,我们假设在第一天我们创建了名为“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

因此,如果我按第二顺序获取表名,我可以简单地为返回的每个表运行相应的select语句,执行统计并打印正确的结果。所以我的问题是,是否有可能在创建日期之前按升序排列表格,而不仅仅是按名称(字符串)?

0 个答案:

没有答案