Java 无法从数据库获取arraylis的日期

Java 无法从数据库获取arraylis的日期,java,javafx,arraylist,Java,Javafx,Arraylist,我编写了一个小的Javafx ToDo应用程序,在Derby DB中列出了我的任务,其中有一个截止日期(duedate),从键入日期算起 我试图做的是将日期记录(duedate)从DB获取到Arraylist中,并更改显示duedate的标签的背景 当我在DB中运行sql语句时,我得到了正确的记录!但我无法在Arraylist中找到它们printLn不显示任何内容,我没有收到任何错误。 如果我得到正确的记录,我会看到标签背景的变化和/或我会在System.out.println中得到记录 以下是

我编写了一个小的Javafx ToDo应用程序,在Derby DB中列出了我的任务,其中有一个截止日期(duedate),从键入日期算起

我试图做的是将日期记录(duedate)从DB获取到Arraylist中,并更改显示duedate的标签的背景

当我在DB中运行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;      
}
下面是任务类:

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;
    }

}
你能告诉我我做错了什么吗? 多谢各位

在@realpoint先生的建议下,我发现该方法从未被调用过!现在,当我从其他地方调用它时,我会得到如下记录列表:

10.12.2019 00:00:00
18.12.2019 00:00:00
我想我现在需要的是一个循环或者一些改变标签背景的东西


78

到底是什么问题?你有错误吗?错误的结果?谢谢你的快速回答!我没有得到任何错误,也没有得到任何结果。该应用程序运行,但正如您在代码中看到的,我在ArrayList中没有任何内容,标签背景保持不变!您的方法抛出
SQLException
。如果抛出异常,谁会捕获该异常?你怎么知道你有正确的记录?什么是
任务
?据我所知,我对代码做了如下更改:void initialize()抛出ClassNotFoundException{try{getDelayedTasks();}catch(SQLException ex){Logger.getLogger(CellController.class.getName()).log(Level.SEVERE,null,ex);}但结果没有改变。应用程序正在运行,没有错误!如果我得到正确的记录,我将看到标签背景中的更改和/或我将在System.out.println.Task中获得记录。Task是一个包含DB字段和构造函数的对象(类)。
10.12.2019 00:00:00
18.12.2019 00:00:00