gpt4 book ai didi

java - 对sql结果进行排序并通过java中的表循环显示所有结果

转载 作者:行者123 更新时间:2023-11-29 02:43:04 25 4
gpt4 key购买 nike

我想用从 jDateChooser 获得的日期对 sql 结果进行排序,并显示所有返回的结果。这是我到目前为止所做的。到目前为止,即使我循环排序的 sql 结果,我也只能得到 1 个结果。

public void MonthlyTotalExpenses_Report(){
String typeOfReport = (String) report_type.getSelectedItem();
String reportDate = ((JTextField)report_date.getDateEditor().getUiComponent()).getText();

db databaseCon = new db();
Connection dbconnect = db.dbconnect();

if(typeOfReport == "Total expenses"){
String selectQuery = "select name,type,sum(amount),date_payed from expenses order by ? DESC";

try{
Connection con = databaseCon.dbconnect();
ResultSet rs = null;
PreparedStatement pst = null;
pst = con.prepareStatement(selectQuery);
pst.setString(1,reportDate);
rs = pst.executeQuery();

List<String> results = new ArrayList<String>();
while(rs.next()) {
results.add(rs.getString(1));
}
for(String result : results) {
System.out.println(result);
}


}catch (Exception e){
JOptionPane.showMessageDialog(null, e);
}
}

}

我想像这样对结果进行排序(例如 -> 2017-01-01 到用户使用 jDateChooser 选择的日期)并打印该期间内可用的所有记录。我只是觉得我写的sql查询是错误的。它只打印数据库中名称列的第一个值。帮助我弄清楚如何根据我上面提到的进行排序并打印所有返回的结果。

最佳答案

您可能希望在查询的 where 条件中设置日期。

select name,type,sum(amount),date_payed from expenses where date_payed = ? order by 4 DESC

考虑从字符串中获取日期。

String reportDate = ((JTextField)report_date.getDateEditor().getUiComponent()).getText(); // "2017-01-01"
DateFormat format = new SimpleDateFormat("YYYY-MM-DD", Locale.ENGLISH);
Date date = format.parse(reportDate);

然后设置你的参数

pst.setDate(1,reportDate);

关于java - 对sql结果进行排序并通过java中的表循环显示所有结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47447483/

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