java中定时数据备份_jsp实现数据备份还原(使用定时器)

packageserverbean;importjava.util.Calendar;importjava.util.TimerTask;importjavax.servlet.ServletContext;importjavax.servlet.ServletException;importjava.sql.SQLException;importjava.text.SimpleDateFormat;importdbconn.DBResult;publicclassDatabaseTaskextendsTimerTask {/*** Constructor of the object.*/publicDatabaseTask() {super();

}//private static final int C_SCHEDULE_HOUR = 3;//这个代表3点钟的时候执行任务privatestaticfinalintC_SCHEDULE_SECOND=3;//这个代表3秒钟的时候执行任务privatestaticbooleanisRunning=false;privateServletContext context=null;publicDatabaseTask(ServletContext context) {this.context=context;

}publicvoidrun() {

Calendar cal=Calendar.getInstance();if(!isRunning) {//if (C_SCHEDULE_HOUR == cal.get(Calendar.HOUR_OF_DAY)) {if(C_SCHEDULE_SECOND==cal.get(Calendar.SECOND)) {

isRunning=true;

context.log("开始执行指定任务");

String filePath=this.context.getRealPath("/database_bak");

SimpleDateFormat tempDate=newSimpleDateFormat("yyyy-MM-dd"+"_"+"HH-mm-ss");//HH表示24小时制,hh表示12小时制String datetime=tempDate.format(newjava.util.Date());

filePath=filePath+"\\FIOM_bak_"+datetime;

String sql="backup database FIOM to disk= '"+filePath+"'";

DBResult conn=newDBResult();try{

conn.executeUpdate(sql);

}catch(SQLException e) {//TODO Auto-generated catch blocke.printStackTrace();

}//System.out.println(this.context.getRealPath("/database_bak"));//对table空值进行修改,并更改编码标记.//由于在查询时就进行了锁定,防止查询后没有录入数据//new CodeDAO().changeState();//此处写执行任务代码isRunning=false;

context.log("指定任务执行结束");

}

}else{

context.log("上一次任务执行还未结束");

}

}publicvoidinit()throwsServletException {//Put your code here}

}


版权声明:本文为weixin_31346703原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。