【发布时间】:2014-11-15 07:17:42
【问题描述】:
我有一个使用 mysql 创建的名为 work 的数据库,其中创建了一个名为 register 的表。它包含一列更新日期。我像这样从 java swing 访问表
conn=ConnectionDB.conn();
Date d=sysdate();
String sql="select renewdate from register";
try
{
ps=conn.prepareStatement(sql);
ResultSet rs=ps.executeQuery();
Date dates;
while(rs.next())
{
dates = rs.getDate("renewdate");
System.out.println(dates);
if(dates==d)
{
SendMailTLS.sendMail();
}
}
}
我的问题是当更新日期等于系统日期时发送电子邮件。我使用函数 sysdate() 生成当前日期并将其分配给 d。还使用 dates = rs.getDate("renewdate") 将表中的更新日期分配给日期。 我的问题是我无法同时匹配 d 和日期,因此无法发送电子邮件。你能帮我如何匹配 d 和日期。 我试过 while(rs.next()) 从表寄存器中获取所有日期。但是使用 if(dates==d) 不能与 d 匹配。我也试过 if(rs.next()),但它只从表中获取第一个更新日期。那么如何检查 renewdate 的所有值并与当前发送消息的日期匹配
【问题讨论】:
-
您是否检查过您的数据库日期格式是否与 sysdate() 相同?
-
你的变量
d-java.util.Date或java.sql.Date使用什么Date类?也许还向我们展示sysdate方法。您是否只期望日期(没有时间信息)? -
永远不要使用 == 运算符比较两个对象的值。您正在做的是检查两个指针是否指向同一个对象。即使两个对象具有相同的值,也不意味着它们是相同的对象。使用 compareTo() 或 equals() 等方法。