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

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 delta降尺度计算的一些细节,有偿
  • ¥15 Arduino红外遥控代码有问题
  • ¥15 数值计算离散正交多项式
  • ¥30 数值计算均差系数编程
  • ¥15 redis-full-check比较 两个集群的数据出错
  • ¥15 Matlab编程问题
  • ¥15 训练的多模态特征融合模型准确度很低怎么办
  • ¥15 kylin启动报错log4j类冲突
  • ¥15 超声波模块测距控制点灯,灯的闪烁很不稳定,经过调试发现测的距离偏大
  • ¥15 import arcpy出现importing _arcgisscripting 找不到相关程序