java 怎么执行每隔一个小时就执行一次插入数据库操作

本文介绍了一种用于数据库定时数据插入的控制机制,通过判断首个地址数据插入时间是否超过一小时来决定后续六个地址数据是否进行数据库插入。该机制简化了多数据源同步更新的流程,确保了数据的一致性和效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题:

一个表是用来存储存储7个地址不同的数据

要求: 每隔1个小时,就执行插入这个7个地址的数据,共7条;


前提

这7个地址接受顺序是固定的,而且之间接受数据的间隔可以忽略不计;

keys是地址,按照0-7来的

思想

只有第一个接受的地址需要经过以下的流程,如果第一个地址可以插入数据库,后面的都可以;如果第一个不可以,后面的也不可以,因为之间的间隔很短,如果设几个变量的话,太麻烦了,也没有意义!

解决方法:

1、设置1个布尔类型的变量,初始值为false;

2、主要操作结构思想如下

2.1       //获取当前的时间

         Date dd=当前时间;

2.2      //定义一个存储标志时间的Date类型的变量

          Date 标志时间变量

2.3    //为每个地址定义一个boolean类型的变量,来决定是否执行存储数据库操作

        Boolean 变量名=true;

2.4   //把当前时间和标志时间变量进行比较,如果差距>1个小时 boolean类型的值为true,不然为false

       if(当前时间- 标志时间变量>1个小时){

        boolean变量名称=true;

     }else if(当前时间- 标志时间变量<1个小时){

       boolean变量名称=flase;

       }

 


 

以上实现的代码如下:

第一个方法public static boolean story()是用来判断第一个地址离上一次执行插入数据库操作的时间是否大于1h;

第二个方法是比较两个时间的差距

package cn.com.nio;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class BooleanStory {
public static boolean story() {
	//为7个地址设置7个boolean类型的变量,初始值为true;
	boolean b0=false;
	//定义一个变量 是来存储当前时间的,7条数据插入的时间都差不多,就用一个变量把
	String time_id=null;
	//获取当前的时间
	Date dd=new Date();	
	SimpleDateFormat simtime=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");	
	String current_time=simtime.format(dd);
	//比较两个时间的差距
	if(prepareTime(current_time,time_id)){
		time_id=current_time;
		 b0=true;
	}
	
	return b0;
}
//两个时间的差距
public static boolean prepareTime(String currentTime,String indenTime){
	boolean prep=false;
	SimpleDateFormat sim=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
	long current;
	try {
		current = sim.parse(currentTime).getTime();
		long inden=sim.parse(indenTime).getTime();
		int h=(int) ((current-inden)/3600000);
		if(h>1){
			prep=true;
		}else{
			prep=false;
		}
	} catch (ParseException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	}
	
	return prep;
}
}

 

在把接受的数据往数据库里面插入的最后一步的时候,对地址0进行判断,如果地址0可以插入数据库,那么其他的都可以,如果地址0不可以插入数据库,那么都不可以插入数据库!

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

qq_37591637

请给我持续更新的动力~~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值