weixin_38094116
weixin_38094116
2017-03-28 02:12

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条回答