文档章节

java 定时备份数据库

奋斗的小菜一碟
 奋斗的小菜一碟
发布于 2015/10/18 17:15
字数 362
阅读 162
收藏 19

/**

     操作数据库

*/

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秒执行一次
         }
}

© 著作权归作者所有

共有 人打赏支持
奋斗的小菜一碟
粉丝 11
博文 35
码字总数 8248
作品 0
广州
程序员
私信 提问
java web项目如何备份mysql数据库。

java web项目如何备份mysql数据库。 先说说,我想干什么:我想在java web项目运行时,定时备份数据库生成hello.sql,并将此文件放入到项目的主目录下。 我的项目使用了spring,spring mvc,hib...

change_solider
2014/07/12
2.3K
2
某android平板项目开发笔记---计划任务备份

前言: 很久,都没更新过这个系列了…因为,除了图表以外,然后就是数据库了,调试了一个多星期的Ormlite数据库,在最新版本中(orm 4.3.3)发现了几个比较严重的bug(例如,查找id的时候无法使用Long类...

打杂程序猿
2012/02/23
0
0
swtUi4 V2.0 发布,桌面程序开发框架

swtUi4 V2.0 发布,此版本更新内容如下: 1.自动化运维,支持 Windows 和 Linux 平台,定时自动备份数据库,添加自动化运维功能。 定时任务执行时间约定可配置,热加载部署。 2.重构工程代码...

tianxia007
2015/10/09
2.6K
0
通过Shell脚本用JDBC连数据库脱离项目框架执行Java业务流程

一.概述 如果项目中需要使用到定时任务来完成某些业务,一般有两种做法:定时任务依赖于项目;定时任务用批处理(windows执行)或者shell脚本(Linux)启动,不依赖于项目。 个人觉得,定时任...

谢思华
2015/08/10
0
0
java Spring调整Quartz定时备份数据库

首先实现单独能够备份db的java程序,思路是执行动态把要执行的批处理命令写入1个bat文件中,然后调用java程序执行这个批处理 执行语句:mysqldump -u root -p123456 sshweb >E:\mysql_backu...

长平狐
2013/01/06
586
0

没有更多内容

加载失败,请刷新页面

加载更多

玩转docker-构建镜像

构建镜像 直接进入主题,docker的构建有两种方式,一种是通过commit命令的方式,一种是通过 Dockerfile 构建文件的方式构建,分析一下这两种方式用法,以拿构建centos为例吧,打算将本地仓库的cen...

yaukie
7分钟前
0
0
koa源码中的promise的解析

koa 是一个非常轻量优雅的 node 应用开发框架,趁着闲余时间阅读了下源代码,其中一些比较有意思的地方整理成文与大家分享一下。 洋葱型中间件机制的实现原理 我们经常把 koa 中间件的执行机...

peakedness丶
9分钟前
0
0
Html5 Canvas动画基础碰撞检测的实现

在Canvas中进行碰撞检测,大家往往直接采用游戏引擎(Cocos2d-JS、Egret)或物理引擎(Box2D)内置的碰撞检测功能,好奇的你有思考过它们的内部运行机制吗?下面将针对基本的碰撞检测技术进行讲解...

嫣然丫丫丫
12分钟前
0
0
阿里云物联网平台体验(树莓派+Python篇)

阿里云物联网平台体验(树莓派+Python篇) 虽然对阿里云物联网平台比较熟悉了,从一开始就有幸参与了飞凤平台(Link Develop 一站式开发平台的前身)的一些偏硬件接入的工作。但是同时也见证了...

阿里云官方博客
17分钟前
1
0
Java Sound Programmer Guide

Introductory Material Preface For Whom This Guide Is Intended What this Guide Describes For More Information Chapter: 1 Introduction to the Java Sound API Design Goals Who is th......

祖冲之
19分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部