0

3 日ごとに新しいテーブルを作成する必要があるアプリケーションがあります。各テーブルにはいくつかの情報があります。

1 か月後またはしばらくしてから、最初に作成したデータベースのすべてのテーブルに対して統計を実行して、結果を確認することにする場合があります。

ただし、統計には、データが 1 日を通してどのように変化したかが示されます。では、初日に「date_1」という名前の最初のテーブルを作成したとします。

3 日目は「date_3」、6 日目は「date_6」、9 日目は「date_9」、12 日目は「date_12」です。実際には、「date_」文字列の後の数字は実際の日付になります。また、必ずしも 3 日ではなく、2 日または 1 日後に別のテーブルを作成することもあります。

ここで、13 日目に統計を実行することにしたとします。データベース内で使用可能なテーブルを見つける 1 つの方法は、次のコードを実行することです。

  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

したがって、2 番目の順序でテーブル名を取得した場合、返された各テーブルに対して適切な選択ステートメントを実行し、統計を実行して正しい結果を出力するだけで済みます。だから私の質問は、単に名前(文字列)ではなく、作成された日付で昇順でテーブルを取得することは可能ですか?

4

0 に答える 0