//这里面有 连接数据库和定时的方法。
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;
/**
@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 语句而且能插入数据库但是不知道怎么操作
定时任务可以使用quart.jar包进行托管,插入数据的话你用jdbc也可以做,就是麻烦,建议用mybatis等orm框架写。你说的怎么操作这个不是一两句话能说清楚的,帮你写代码也不可能的,还是要你自己联系
参考一下http://blog.csdn.net/macau2008/article/details/7356805
把写库操作放到要执行的任务里面,把任务加到定时器里面,设置定时器启动间隔