gpt4 book ai didi

java - 如何在 Java 中对表数据结构中的数据进行排序?

转载 作者:行者123 更新时间:2023-11-29 08:16:26 24 4
gpt4 key购买 nike

我需要根据表数据结构的第三列对数据进行排序。我根据以下 question 的答案进行了尝试.但是我的排序不起作用。请帮助我。这是我的代码。

Object[] data = new Object[y];
rst.beforeFirst();
while (rst.next()) {
int p_id = Integer.parseInt(rst.getString(1));
String sw2 = "select sum(quantity) from tbl_order_detail where product_id=" + p_id;
rst1 = stmt1.executeQuery(sw2);
rst1.next();
String sw3 = "select max(order_date) from tbl_order where tbl_order.`Order_ID` in (select tbl_order_detail.`Order_ID` from tbl_order_detail where product_id=" + p_id + ")";
rst2 = stmt2.executeQuery(sw3);
rst2.next();
data[i] = new Object[]{new String(rst.getString(2)), new String(rst.getString(3)), new Integer(rst1.getString(1)), new String(rst2.getString(1))};
i++;
}
ColumnComparator cc = new ColumnComparator(2);
Arrays.sort(data, cc);
if (i == 0) {
table.addCell("");
table.addCell("");
table.addCell("");
table.addCell("");
} else {
for (int j = 0; j < y; j++) {
Object[] theRow = (Object[]) data[j];
table.addCell((String) theRow[0]);
table.addCell((String) theRow[1]);
table.addCell((String) theRow[2]);
table.addCell((String) theRow[3]);
}

示例预期输出:

Product_code  Product_name  Quantity Order_date  
FK Cake 3000 2010-12-09
CK Jelly 100 2010-09-23
F juice 30 2010-12-09

但我得到的是:

Product_code  Product_name  Quantity Order_date  
CK Jelly 100 2010-09-23
F juice 30 2010-12-09
FK Cake 3000 2010-12-09

最佳答案

你在这里发生的事情太多了。您正在将数据库访问和 UI 全部混合到一个方法中。我会分开这些问题。

我还建议让数据库进行排序。将 ORDER BY 添加到 SELECT 并让数据库完成工作。

我会将 SELECT 中的数据映射到一个对象中,该对象具有用于排序的比较器。将结果集加载到该对象的列表中;这样你就可以实现所有愿望。

关于java - 如何在 Java 中对表数据结构中的数据进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4532653/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com