java定时查询

java定时查询,第1张

在调用查询方法的时候加上判断

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中怎么把数据库中的表做成定时任务,存入缓存,减轻频繁直查数据库时,数据库的压力等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/10155467.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-05
下一篇2023-05-05

发表评论

登录后才能评论

评论列表(0条)

    保存