【发布时间】:2019-01-26 21:43:21
【问题描述】:
我创建了一个数据库,用于存储给定用户的不同属性。我已经实现了一个算法,它采用用户名属性并存储该属性的内容并将其存储在一个数组中。但是由于某种原因,在打印数组时,它会按字母顺序显示用户。我希望它返回我的数据库的原始顺序。对于上下文,我使用 Java 中的 JDBC API,它采用 MySQL 语法。
我没有实现ORDER BY 语句,它只是一个简单的SELECT FROM WHERE 语句,但它似乎按字母顺序返回。
public void DisplayUsers() throws SQLException {
String queryCount = "SELECT COUNT(Username) FROM UserInfo";
String query = "SELECT Username FROM UserInfo";
declaringDataBase();
rsObj = statObj.executeQuery(queryCount);
String x = null;
while(rsObj.next()){
x = rsObj.getString(1);
}
int rowNum = Integer.parseInt(x);
rsObj = statObj.executeQuery(query);
String UserArray[] = new String[rowNum];
int counter = 0;
while(rsObj.next()){
String user = rsObj.getString("Username");
UserArray[counter] = user;
System.out.println(UserArray[counter]);
counter++;
}
}
declaringDatabase(); 行只是调用另一个方法来将我的数据库连接到代码。 count 语句获取属性 Username 下的用户数,并创建一个整数来存储数组的长度。但无论如何我的UserArray[] 按字母顺序返回值,有人知道为什么吗?
【问题讨论】:
-
我感觉你打算写查询
SELECT Username, COUNT(Username) FROMUserInfo GROUP Username ORDER BY Username ASC而不是这两个查询。 -
好吧,我只是忘记了一个大写字母,我还没有清理语法。没什么大不了的。请专注于问题,您有解决方案吗:有一个顺序,每行都有一个数字,我希望它返回行号按升序排列的值。如果您没有解决方案或建设性批评,请不要发表评论。
-
我确实使用了数组?
-
哦,我想实现排序算法,我的老师告诉我使用数组 - 我更熟悉它们