我正在尝试删除表中的一行。这是我的示例代码

String DBDate = new String();
Long date = new Date().getTime();
String dateToday = date.toString();
dbobj.clear();
dbobj.put(LAST_TIME_ANSWERED, "");
int hasDB = dbobj.getFromDB(tableName,column key, primary key);

if(hasDB != 0) {
    DBDate = dbobj.get(LAST_TIME_ANSWERED);
    if(DBDate != dateToday) {
        dbobj.deleteClientDB(tableName, column key, primary key);
    }
}


如何更改计时器的日期?
你能帮忙的话,我会很高兴。提前致谢!

最佳答案

这在Java中很难实现,因为您需要按计划运行作业以实现此目标。您应该强烈考虑使用mysql事件调度程序。有关此示例,请参见this answer

当您在db中插入该行时,您应该设置一个事件,该事件在24小时后恰好触发一次,并带有必要的sql来删除该行。您最终将每行发生一个事件。

或者,使用Java和正确配置的服务器,在每行插入之后,您可以添加cron或石英作业,该作业将在24小时后触发一次,这将调用Java函数来删除该行。这比使用数据库内置的事件调度程序难。

根据您的JEE版本(> 6),您可以使用EJB 3.1计时器,如this blog post中所述。

在这些选项中,db事件调度程序可能是最好的,因为如果JEE服务器关闭,其他事件可能会出错。

07-27 13:50