首页 > 代码库 > JSP 实现 之 调用java方法实现MySQL数据库备份和恢复

JSP 实现 之 调用java方法实现MySQL数据库备份和恢复

 

package cn.qm.db;  import java.io.BufferedReader;  import java.io.DataInputStream;  import java.io.IOException;  import java.io.InputStreamReader;      public class Command {      /*      public static void main(String[] args) throws IOException {          Command com = new Command();          com.backupDatebase("localhost","root","root", "JXC", "D:/jxc.sql");      }            /**       * 执行dos命令       * @param cmd       * @return       */      public String execCmd(String cmd) {          StringBuffer sb = new StringBuffer("");          StringBuffer str = new StringBuffer();          str.append("cmd.exe /c \"").append(cmd).append("\"");          System.out.println(str);        //打印执行的命令          Process ls_proc;          try {              ls_proc = Runtime.getRuntime().exec(str.toString());              BufferedReader in = new BufferedReader(                                      new InputStreamReader(                                          new DataInputStream(ls_proc.getInputStream())));              String ss = "";              while((ss = in.readLine()) != null) {                  sb.append(ss).append("\n");              }              in.close();          } catch (IOException e) {              e.printStackTrace();          }             return sb.toString();      }            /**       * 执行mysql数据库备份       * @param ip       * @param username       * @param password       * @param datebaseName       * @param filePath       * @return       */      public boolean backupDatebase(String ip, String username, String password,String datebaseName, String filePath) {          String strCommand = "mysqldump -h "+ip+" -u" + username + " -p" + password + " " + datebaseName + " > " + filePath;          String result = execCmd(strCommand);          System.out.println(result);          return true;      }            /**       * 根据返回结果验证是否成功       * @param result       * @return       */      public boolean check(String result) {          return true;      }  }  

 

 在JSP页面只要调用这个JAVA类就可以。(文件名只能是.sql)

<%@ page language="java" import="java.util.*,cn.qm.db.*" pageEncoding="UTF-8"%>  <%  String path = request.getContextPath();  String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";  %>    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">  <html>    <head>      <base href="<%=basePath%>">            <title>数据库备份测试</title>            <meta http-equiv="pragma" content="no-cache">      <meta http-equiv="cache-control" content="no-cache">      <meta http-equiv="expires" content="0">          <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">      <meta http-equiv="description" content="This is my page">      <!--      <link rel="stylesheet" type="text/css" href="http://www.mamicode.com/styles.css">      -->      </head>        <body>  <%  Command com = new Command();  String ip = "localhost";//ip地址  String username = "root";//MySQL数据库的用户名  String password = "root";//MySQL数据库的密码  String database = "JXC";//数据库名字  String url = "D:/jxc.sql";//备份的目的地址  boolean check = com.backupDatebase(ip,username,password,database,url);  if(check){   %>   数据库备份成功   <%} %>    </body>  </html>  

下面是恢复数据的代码。

package cn.qm.db;  import java.io.*;   import java.lang.*;     /*   * 还原MySql数据库   * */   public class Recover {   public boolean load(){      String filepath = "d:\\jxc.sql"; // 备份的路径地址          //新建数据库test           String stmt1 = "mysqladmin -u root -proot create jxctest";           String stmt2 = "mysql -u root -proot jxctest < " + filepath;         String[] cmd = { "cmd", "/c", stmt2 };           try {         Runtime.getRuntime().exec(stmt1);         Runtime.getRuntime().exec(cmd);         System.out.println("数据已从 " + filepath + " 导入到数据库中");         } catch (IOException e) {         e.printStackTrace();         }         return true;  }  }   
<%@ page language="java" import="java.util.*,cn.qm.db.*" pageEncoding="UTF-8"%>  <%  String path = request.getContextPath();  String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";  %>    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">  <html>    <head>      <base href="<%=basePath%>">            <title>数据恢复测试</title>            <meta http-equiv="pragma" content="no-cache">      <meta http-equiv="cache-control" content="no-cache">      <meta http-equiv="expires" content="0">          <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">      <meta http-equiv="description" content="This is my page">      <!--      <link rel="stylesheet" type="text/css" href="http://www.mamicode.com/styles.css">      -->      </head>        <body>    <%  Recover com = new Recover();  String url = "D:/jxc.sql";  boolean check = com.load();  if(check){   %>   数据库恢复成功   <%} %>    </body>  </html> 

 

 

 

JSP 实现 之 调用java方法实现MySQL数据库备份和恢复