原文:http://www.open-open.com/code/view/1447490829678

/**

     操作数据库

*/

public class BackupDb {
public String backup() throws IOException{
String user = "root"; //数据库的用户名
String password = "admin";//数据库的密码
String database = "hrtweb";//要备份的数据库名
Date date = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
String filepath = "d:\\"+sdf.format(date)+".sql";
File file = new File("d:\\",sdf.format(date)+".sql");
if(!file.exists()){
file.createNewFile();
}
String stmt1 = "mysqldump " + database +" -h 127.0.0.1 "+ " -u " + user + " -p" +
password + " --default-character-set=gbk --result-file=" + filepath;
try {
Runtime.getRuntime().exec(stmt1);
System.out.println("已经保存到 " + filepath + " 中");
} catch (IOException e) {
e.printStackTrace();
}
return filepath;
}
} /** 创建定时器 */ public class PickTask {
private Timer timer = new Timer();
private TimerTask task = new TimerTask() {
public void run() {
Date date = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String beginDate = sdf.format(date);
String beginTime = beginDate.substring(11, 16);
System.out.println("开始时间:"+beginDate); BackupDb bdb = new BackupDb();
// 设定备份时间
if (beginTime.equals("17:09")) {
try {
bdb.backup(); // 执行文件备份
String dbName = bdb.backup().toString(); // 取出备份的文件名字
String path = "d:\\";
int nameNo = dbName.lastIndexOf("\\");
//判断文件是否存在,如果存在,则备份成功,如果不存在则备份不成功需要重新备份
File file = new File(path, dbName.substring(nameNo + 1,dbName.length()));
if (file.exists()){
System.out.println("备份成功"); }else{ System.out.println("备份失败,重新备份");
//在备份未成功的情况下重新备份
new PickTask().start(1, 1);
} } catch (FileNotFoundException e) {
System.out.println("can not find the file");
} catch (IOException e) {
e.printStackTrace();
}
}else{
System.out.println("时间还不到呢,不要着急哦!");
}
}
}; //start 方法不能少,主要是schedule方法
public void start(int delay, int internal) {
timer.schedule(task, delay * 1000, internal * 1000);
}
} /** 测试类,执行定时备份指令 */ public class TimerUse {
public static void main(String[] args) {
PickTask picktask = new PickTask();
picktask.start(1, 60); // 每60秒执行一次
}
}

最新文章

  1. C# dynamic 动态创建 json
  2. javascript 技巧总结积累(正在积累中)
  3. 把文件打成zip或然rar下载 (详询请加qq:2085920154)
  4. struts2:异常处理
  5. R语言画图基础参数设置
  6. SAP 预制发票时扣除已预制的数据
  7. C++11类型推导
  8. 一个简单的小例子让你明白c#中的委托-终于懂了!
  9. jquery获取文档高度和窗口高度的例子
  10. C#查询当前微信自定义菜单结构
  11. Trac的使用思考
  12. JS键盘的键码(event.keyCode)
  13. hdu1272并查集入门
  14. wap网站的优化建设
  15. C++的socket编程学习
  16. Node笔记二
  17. ****微信小程序架构解析
  18. Springboot的异常处理与自定义异常
  19. .net4.0调用非托管DLL的异常捕获
  20. HTML中的Meta标签详解

热门文章

  1. (转)Spring4.2.5+Hibernate4.3.11+Struts1.3.8集成方案一
  2. 筛选法 || POJ 1356 Prime Land
  3. Opencv竟然有中文资料
  4. 2012 noip提高 Vigenère 密码
  5. Linux 系统内存分析
  6. 关于inet_ntop、inet_pton中的n和p分别代表的意义
  7. 组管理命令--groupadd.groupmod.groupdel.gpasswd
  8. CSS知识点之字体大小属性font-size
  9. functools内置装饰器
  10. 2016上海站EC-final总结!