Java web 项目中对数据库备份和恢复

先贴出来参考地址:http://www.open-open.com/lib/view/open1331354269624.html

直接贴代码:

package com.ly.jxc.util;

import java.io.IOException;

import java.text.SimpleDateFormat;
import java.util.Date;

public class DBRecover {
    /** 访问MySQL数据库服务器所在的url */
     private String serverUrl;
     /** 访问MySQL数据库的用户名 */
     private String username;
     /** 访问MySQL数据库的密码 */
     private String password;

     public String getServerUrl() {
      return serverUrl;
     }

     public void setServerUrl(String serverUrl) {
      this.serverUrl = serverUrl;
     }

     public String getUsername() {
      return username;
     }

     public void setUsername(String username) {
      this.username = username;
     }

     public String getPassword() {
      return password;
     }

     public void setPassword(String password) {
      this.password = password;
     }

     public DBRecover(String serverUrl,String username, String password) {
      super();
      this.serverUrl=serverUrl;
      this.username = username;
      this.password = password;
     }

     public String backup(String backupPath, String dbName) throws IOException {

      String backupFile = backupPath+ new SimpleDateFormat("yyyy-MM-dd-HH-mm-ss").format(new Date()) + ".sql";

      String mysql =backupPath+"mysqldump "+"--host="+serverUrl+" --user=" + username + " --password="+ password + " --opt " + dbName + "> "+backupFile ;

      System.out.println("备份"+mysql);
      java.lang.Runtime.getRuntime().exec("cmd /c " + mysql);

      System.out.println("备份成功!");

      return backupFile;

     }

     public void restore(String restoreFile, String dbName,String path) throws Exception {

      String mysql = path+"mysql "+"-h"+serverUrl+" -u" + username + " -p"+ password + " " + dbName + " < " + restoreFile;

            System.out.println("+++++++++++++++++++++++++++"+mysql);

      java.lang.Runtime.getRuntime().exec("cmd /c " + mysql);

      System.out.println("还原成功!");
     }

     /**
      * @param args
      */
     public static void main(String[] args) {

      String serverUrl="192.168.1.6";

      String userName = "root";

      String pwd = "root";

      DBRecover backup = new DBRecover(serverUrl,userName, pwd);

      try {
          backup.backup("", "lyjxc");
//       backup.restore("d:/nationz2010-12-20-14-16-47.sql", "nationz");
      } catch (Exception e) {
       e.printStackTrace();
      }
     }

}

注意点:1.在 backup 和 restore 中的执行中我分别有一些变化,因为需要用到mysql  bin下面的 mysql.exe,mysqldump.exe,由于没有配置mysql 的环境设置,所以我将这两个文件拷贝到我的项目中 exec 执行的时候是执行我项目中的这两个文件。就是代码中mysql前面的两个变量就是代表执行的是我项目中的mysql.exe,mysqldump.exe

    2.拷贝出来的目的还有另一个,由于mysql默认安装路径是在系统盘的program file文件夹下。如果直接用mysql>bin 下面 mysql.exe,mysqldump.exe,备份出来的sql文件为0kb,是由于program file 文件夹名字存在空格,会影响。所以为了保险我将文件放到我的项目中来执行。

    3.还有sql文件名字中貌似还不能有“:”  时分秒的间隔 我想用冒号,结果生产不出来的。

OK 到此结束。我本地测试内部服务器通过。

时间: 2024-10-10 06:08:18

Java web 项目中对数据库备份和恢复的相关文章

Java Web项目中连接Access数据库的配置方法

本文是对前几天的"JDBC连接Access数据库的几种方式"这篇的升级.因为在做一些小项目的时候遇到的问题,因此才决定写这篇博客的.昨天已经将博客公布了.可是后来经过一些验证有点问题,所以今天改了一下又一次的公布了 老师决定期末考试採用access数据库实现增删改查.我觉得如今的我已经没有问题了.可是曾经都是在JSP页面中连接access数据库,不管是下面的那种方式都进行了连接的练习,可是如今我想让我的项目中的訪问access数据库的java代码,封装到DAO中,在DAO中连接数据库,

在Java Web项目中引入Mondrian多维分析框架

一,Mondrian简介 Mondrian是一个开源项目,一个用Java写成的OLAP引擎.它用MDX语言实现查询,从关系数据库(RDBMS)中读取数据.然后经过Java API以多维的方式对结果进行展示. Mondrian的使用方式同JDBC驱动类似.可以非常方便的与现有的Web项目集成. Mondrian OLAP 系统由四个层组成,可分为从最终用户到数据中心, 顺序为: 1表现层(the presentation layer) 2维度层(the dimensional layer) 3集合

实战:在Java Web 项目中使用HBase

在此之前我们使用Mysql作为数据源,但发现这数据增长速度太快,并且由于种种原因,因此必须使用HBase,所以我们要把Mysql表里面的数据迁移到HBase中,在这里我就不讲解.不争论为什么要使用HBase,HBase是什么了,喜欢的就认真看下去,总有些地方是有用的 我们要做的3大步骤: 新建HBase表格. 把MYSQL数据迁移到HBase中. 在Java Web项目中读取HBase的数据. 先介绍一下必要的一些环境: HBase的版本:0.98.8-hadoop2 所需的依赖包: commo

在java web项目中集成webservice

公司要求在项目中加入webservice服务,因为项目中使用了spring框架,所以在这里使用与spring兼容性较好的cxf来实现 cxf所需jar包 spring的jar包就不贴了 一:创建webservice服务器 1)创建一个服务接口 package com.service; import javax.jws.WebParam; import javax.jws.WebService; @WebService public interface IHelloWorld { public S

Java Web项目中缺少Java EE 6 Libraries怎么添加

具体步骤如下: 1.项目名称上点击鼠标右键,选择"Build Path-->Configure Build Path-->Java Build Path" 2.单击"Add Library..." 3.选择"User Library",单击"Next" 4.单击"User Libraries...",选择需要的Java EE 6 Libraries Java Web项目中缺少Java EE 6

JAVA WEB项目中各种路径的获取

JAVA WEB项目中各种路径的获取 标签: java webpath文件路径 2014-02-14 15:04 1746人阅读 评论(0) 收藏 举报  分类: JAVA开发(41)  1.可以在servlet的init方法里 String path = getServletContext().getRealPath("/"); 这将获取web项目的全路径 例如 :E:\eclipseM9\workspace\tree\ tree是我web项目的根目录 2.你也可以随时在任意的cla

Java web 项目中使用ckeditor和ckfinder

重点汇总: 加入相关的jar包 在web.xml文件加入ckfinder 请求拦截器 配置ckfinder的配置文件:config.xml 杂谈 作为一个可视化的HTML 编辑器,最重要的一点是对于文件.图片和视频的管理,一个好的可视化的HTML 编辑器应该有很好的设计. 其他的话就不多说了,现在开始进入正题. ckeditor和ckfinder 两个到底是干什么的?为什么要做两个? ckeditor就是一个可视化的HTML编辑器,但是他的上传图片和视频却交给了另外的软件:ckfinder,为什

java web项目中 读取properties 路径的问题

可以先获取项目的classPath String classPath = this.getClass().getResource("/").getPath();//获取classPath(部署到tomcat的路径上) 我的为/D:/apache-tomcat-6.0.29/webapps/demo/WEB-INF/classes/  在连接下面的路径即可 代码如下: package readproperties; import java.io.BufferedInputStream;i

理解java Web项目中的路径问题

本文以项目部署在tomcat服务器为例,其他相信也是一样的. 先说明请求页面的写法,在web中,页面路径主要写的有以下几种 1.请求重定向 2.浏览器的请求被服务器请求到新页面(我称为“转发”) 3.超链接 4.form表单提交的action 为了演示路径写法,首先先建一个项目(项目名WebPath),并建立一个servlet(PathServlet) 目录结构如下 以访问目录中index.jsp文件为例,jxf.path.PathServlet.jave中对以上四种路径的写法(红色部分) 1