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