前些天需要做一个项目里边有一个是要求每隔几天就自动修改数据库里的一个字段比如隔一年就自动将age表中的年龄都加1这个怎么弄啊我没弄过最好是有代码帮忙贴出来吧!谢谢啦!

解决方案 »

  1.   

    将age表中的年龄都加1这个设计本来就有问题,应该保存出生年月,而不是每年更新年龄。
      

  2.   

    如果确实需要通过程序更新后台数据库的字段,用quartz写一个定时任务吧
      

  3.   

    这个需求不变态,很正常. 你进如了一个误区,这个业务的实现跟 jsp 一点 关系都没有, 你完全可以 自己 独立写一个 application 就做 更新 表的操作 . 如果是windows 系统 可以 直接 在 控制面板 添加 任务计划 ,写个 exe 或 bat 什么的 ,执行 这个操作就完了.  如果是 linux 或 unix 就不那么好弄了 , 我 的实现 方式是  :   
    核心思想 就是  用 run.sh  调用  JobScheduler.jar , JobScheduler.jar 会读取jobs.unix 运行 主入口.sh, 主入口.sh  就可以执行你 写的那个 application jar 包了!
    1. run.sh 内容如下 :  
    # port 是用于进程锁的参数,指定一个端口号,请确保该端口号是空闲的。
    echo $$ > jpid.log
    java -Dfile.encoding=GBK -Duser.language=zh -Duser.region=CN -Duser.timezone=Asia/beijing -Dport=5000 -Ddebug=Y -DjobConfigFile=jobs.unix -jar JobScheduler.jar2 . 写个 jobs.unix 文件 里面写  #格式:可执行程序或脚本,可执行程序或脚本的参数,触发参数
    1,sh,主入口.sh,5
    3 主入口.sh
    其中  上边的 主入口.sh 里面内容应该这个写 java -Dfile.encoding=GBK -Duser.timezone=Asia/beijing -jar 实际执行的application.jar 
    你在到网上下  一下 有没有  JobScheduler.jar  ,  我们 做计划任务用了这个.  
      

  4.   

    很简单,如果是oracle,可以做一个定时作业,时间到了oracle去调用这个作业,在作业里去调改数据的存储过程就OK了。