我有一个应用程序,我需要每三天左右创建一个新表。每个表都会有一些信息。
一个月或一段时间后,我可能决定对我最初创建的数据库的所有表运行一些统计数据,以便找出一些结果。
然而,统计数据将显示数据在几天内的变化情况。所以让我们假设在第一天我们创建了第一个名为“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
因此,如果我以第二个顺序获得表名,我可以简单地为每个返回的表运行适当的选择语句,进行统计并打印正确的结果。所以我的问题是,是否可以按创建日期而不是简单地按名称(字符串)按升序获取表格?