java - 无法从数据库获取日期到数组
问题描述
我编写了一个小型 Javafx ToDo 应用程序,从 Derby DB 中的 Type Date 中列出我的任务以及截止日期(截止日期)。
我想要做的是将日期记录(到期日期)从数据库获取到 Arraylist 并更改显示到期日期的标签的背景。
当我在数据库中运行 sql 语句时,我得到了正确的记录!但我无法将它们放入 Arraylist。printLn 什么也没显示,我也没有收到任何错误。
如果我得到正确的记录,我会看到标签背景的变化和/或我会得到 System.out.println 中的记录。
这是我的方法:
public ArrayList<Task> getDelayedTasks() throws ClassNotFoundException, SQLException {
conn = DBConnUtil.getConnection();
String s = "select duedate from tasks where duedate <= CAST(CURRENT_TIMESTAMP AS DATE);";
ps = conn.prepareStatement(s);
rs = ps.executeQuery();
ArrayList<Task> delayedTaskList = new ArrayList<Task>();
while (rs.next()) {
Task task;
task = new Task(rs.getDate("duedate"));
delayedTaskList.add(task);
dueDateLabel.setBackground(Background.EMPTY);
System.out.println(Arrays.toString(delayedTaskList.toArray()));
System.out.println(task);
}
return delayedTaskList;
}
在这里我如何在控制器中调用它:
void initialize() throws ClassNotFoundException {
try {
getDelayedTasks();
} catch (SQLException ex) {
Logger.getLogger(CellController.class.getName()).log(Level.SEVERE, null, ex);
}
}
这是任务类:
import java.sql.Date;
import java.sql.Timestamp;
public class Task {
private int taskId;
private String task;
private String description;
private Timestamp dateCreated;
private Date duedate;
public Task() {
}
public Task(Timestamp datecreated, String description, String task, Date duedate) {
this.dateCreated = datecreated;
this.description = description;
this.task = task;
this.duedate = duedate;
}
Task(Date duedate) {
this.duedate = duedate;
}
public Timestamp getDatecreated() {
return dateCreated;
}
public void setDatecreated(Timestamp datecreated) {
this.dateCreated = datecreated;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
public String getTask() {
return task;
}
public void setTask(String task) {
this.task = task;
}
public int getTaskId() {
return taskId;
}
public void setTaskId(int taskId) {
this.taskId = taskId;
}
public Date getDueDate() {
return duedate;
}
public void setDueDate(Date duedate) {
this.duedate = duedate;
}
}
你能告诉我我做错了什么吗?谢谢
在@RealSkeptic 先生的建议之后,我发现该方法从未被调用过!现在,当我从其他地方调用它时,我会得到一个这样的记录列表:
10.12.2019 00:00:00
18.12.2019 00:00:00
我想我现在需要的是一个循环或改变标签背景的东西。
78
解决方案
推荐阅读
- python - 使用python或在linux中创建excel文件(.xlsx)时如何设置用户定义的权限
- c# - 如何在asp.net web api中发布数据列表
- php - 如何仅在 WooCommerce 中显示活动选项卡名称
- javascript - 在 chrome 扩展上全局存储文本,并在加载时重用它
- azure - 如何启用具有多个意图和 Qnamaker KB 的主动学习?
- swift - 什么是 Swift 中的桥接转换,如以下警告所示: 'Data?' Conditional downcast to 'CKRecordValue 是一种桥接转换
- javascript - 使用全局安装的 @angular/core 而不是本地安装
- c# - 仅生成路径的 SVG 剪辑
- javafx - 如何完全重置表格视图以在同一个表格视图中显示不同结构的数据?
- powershell - 我如何在 Powershell 中查询新映像的 PC,然后给我最后一次登录的所有人的姓名