weixin_38094116 2017-03-28 02:12 采纳率: 0%
浏览 3215

javaweb定时器向数据库插入数据

//这里面有 连接数据库和定时的方法。
package com.thinkgem.jeesite.modules.wdmtk.web;

import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.Calendar;
import java.util.Date;
import java.util.Timer;

import com.mysql.jdbc.Connection;
import com.mysql.jdbc.Statement;

/**

  • java定时任务,每天定时执行任务
  • @author wls
    *
    */
    public class TimerManager {
    // 时间间隔
    private static final long PERIOD_DAY = 5 * 60 * 1000;

    public TimerManager() {
    Calendar calendar = Calendar.getInstance();
    String url = "jdbc:mysql://localhost:3306/jeesite" ;

    String username = "root" ;

    String password = "" ;

    /*** 定制每日2:00执行方法 ***/
    
    calendar.set(Calendar.DAY_OF_YEAR, 0);
    calendar.set(Calendar.HOUR_OF_DAY,17);
    calendar.set(Calendar.MINUTE, 35);
    calendar.set(Calendar.SECOND, 0);
    
    Date date = calendar.getTime(); // 第一次执行定时任务的时间
    System.out.println(date);
    System.out.println("before 方法比较:" + date.before(new Date()));
    // 如果第一次执行定时任务的时间 小于 当前的时间
    // 此时要在 第一次执行定时任务的时间 加一天,以便此任务在下个时间点执行。如果不加一天,任务会立即执行。循环执行的周期则以当前时间为准
    if (date.before(new Date())) {
        date = this.addDay(date, 1);
        System.out.println(date);
    }
    
    Timer timer = new Timer();
    
    NFDFlightDataTimerTask task = new NFDFlightDataTimerTask();
    // 安排指定的任务在指定的时间开始进行重复的固定延迟执行。
    timer.schedule(task, date, PERIOD_DAY);
    //连接数据库的
    
     try{   
    java.sql.Connection con = DriverManager.getConnection(url , username , password ) ;
    
    System.out.println("数据库连接成功");
     }catch(SQLException se){   
    System.out.println("数据库连接失败!");   
    se.printStackTrace() ;   
     }    
    

    }

    // 增加或减少天数
    public Date addDay(Date date, int num) {
    Calendar startDT = Calendar.getInstance();
    startDT.setTime(date);
    startDT.add(Calendar.DAY_OF_MONTH, num);
    return startDT.getTime();

    }

}
//这个是循环的数据
package com.thinkgem.jeesite.modules.wdmtk.web;

import java.io.InputStream;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Properties;
import java.util.TimerTask;

import com.mysql.jdbc.Connection;
import com.mysql.jdbc.Statement;

public class NFDFlightDataTimerTask extends TimerTask {
private static SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

//这个是循环的数据
@Override
public void run() {
    try {
        // 在这里写你要执行的内容(这里是输出语句 )
        System.out.println("执行当前时间" + formatter.format(Calendar.getInstance().getTime()));

        // System.out.println("这里是要输出的数据");
    } catch (Exception e) {
        System.out.println("-------------解析信息发生异常--------------");
    }

}

}
我想循环的数据是一个sql 语句而且能插入数据库但是不知道怎么操作

  • 写回答

2条回答 默认 最新

  • Leon0720 2017-03-28 02:56
    关注

    定时任务可以使用quart.jar包进行托管,插入数据的话你用jdbc也可以做,就是麻烦,建议用mybatis等orm框架写。你说的怎么操作这个不是一两句话能说清楚的,帮你写代码也不可能的,还是要你自己联系

    评论

报告相同问题?

悬赏问题

  • ¥15 本题的答案是不是有问题
  • ¥15 关于#r语言#的问题:(svydesign)为什么在一个大的数据集中抽取了一个小数据集
  • ¥15 C++使用Gunplot
  • ¥15 这个电路是如何实现路灯控制器的,原理是什么,怎么求解灯亮起后熄灭的时间如图?
  • ¥15 matlab数字图像处理频率域滤波
  • ¥15 在abaqus做了二维正交切削模型,给刀具添加了超声振动条件后输出切削力为什么比普通切削增大这么多
  • ¥15 ELGamal和paillier计算效率谁快?
  • ¥15 蓝桥杯单片机第十三届第一场,整点继电器吸合,5s后断开出现了问题
  • ¥15 file converter 转换格式失败 报错 Error marking filters as finished,如何解决?
  • ¥15 Arcgis相交分析无法绘制一个或多个图形