
在调用查询方法的时候加上判断
Calendar calendar=CalendargetInstance();
int h=calendarget(CalendarHOUR_OF_DAY);
获取当前小时。然后进行逻辑处理
if(h>11){
昨天数据
}else{
前天数据
}
你这跟struts2没关系,需要一个定时器,定时去跑你的查询库表代码就OK了。
如果你的程序是需要将查询结果展示在jsp页面上,你需要在jsp页面上使用js写定时器代码,参考SetInterval方法。
如果你的程序是桌面应用程序,你可以使用java的定时器Timer。当然,你的项目中如果使用了spring,那有更好的解决方案Quartz。
具体问题要具体分析了。
根据你的想法,建议将两种方式整合下,建议如下设置:
接根据业务层的需要,把频繁使用的多个表数据进行整合,并利用视图的方式进行访问,这样既能减少数据表的压力,也能保持数据的准确性;
根据向系统设定场景,将经常使用到的数据存放在缓存中,缓存建议使用radis等非关系型数据库;
根据数据量确定,数据量比较大的,可以使用中间表等方式,如果数据量小而多的,放在缓存中最好,提高命中率。
方式很多:
1、写一个线程,用servelt启动它,并且用servlet给它设置时间间隔。
2、使用javautilTimer timer做,这样简单些,一个servlet就可以,写在init函数里。
修改数据库可以使用数据库本身的计划任务(job),这种方式最好。
第二种是使用程序来做如java的timer和timetask。保证在项目启动的时候启动该计划任务。
public static void main(String[] args) {//定时任务
final Timer timer = new Timer();
// 指定任务在星期四中午12:00执行
Calendar calendar = CalendargetInstance();
calendarset(CalendarDAY_OF_WEEK, CalendarTUESDAY);
calendarset(CalendarHOUR_OF_DAY, 12);
calendarset(CalendarMINUTE, 00);
calendarset(CalendarSECOND, 0);
javautilDate time = calendargetTime();
timerschedule(new TimerTask() {
public void run() {
// 你要执行的 *** 作
try{
} catch (Exception e) {
// 出现异常的 *** 作:如取消计划任务
timercancel();
}
}
},time);
}
以上就是关于java定时查询全部的内容,包括:java定时查询、用java写一个程序,实现对SQL数据库的动态表进行定时查询、Java中怎么把数据库中的表做成定时任务,存入缓存,减轻频繁直查数据库时,数据库的压力等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)