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="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="styles.css">
--> </head> <body> <%
Recover com = new Recover();
String url = "D:/jxc.sql";
boolean check = com.load();
if(check){
%>
数据库恢复成功
<%} %>
</body>
</html>
JSP 实现 之 调用java方法实现MySQL数据库备份和恢复的更多相关文章
- mysql 数据库备份,恢复。。。。
mysql 数据备份,恢复,恢复没写,这里只写了备份... 先暂作记录吧! 备份:表结构和数据完全分开,默认有一个文件会记录所有表的结构,然后表中数据的备份 如果超过分卷的大小则会分成多个文件,不然则 ...
- Java Web 实现Mysql 数据库备份与还原
前段时间某某删库事故付出的惨重代价告诉我们: 数据备份的必要性是企业数据管理极其重要的一项工作. 1. Mysql备份与还原命令 备份命令: mysqldump -h127.0.0.1 -uroot ...
- mysql 数据库备份和恢复
物理备份对比逻辑备份 物理备份是指直接复制包含数据的文件夹和文件.这种类型的备份适用于大数据量且非常重要,遇到问题需要快速回复的数据库. 逻辑备份保存能够代表数据库信息的逻辑结构(CREATE DAT ...
- ubuntu mysql 数据库备份以及恢复[命令行]
之所以加了个ubuntu,其实也没什么,就是恢复数据库的时候给幽默了一下,所以特地加上. 写在前面:一直很想好好的学linux命令行.shell编程,幻想自己能够通过学习进而成为命令行高手,游刃于 ...
- mysql数据库备份及恢复命令mysqldump,source的用法
还原一个数据库:mysql -h localhost -u root -p123456 www<c:/www.sql 备份一个数据库:mysqldump -h localhost -u root ...
- mysql数据库备份和恢复
1.数据库备份 mysqldump -uroot -proot jira736 > jira736.sql 2.数据库恢复 mysql -uroot -proot jira762 < ji ...
- mysql 数据库备份及恢复
1.备份 # 导出数据库:mysqldump -u 用户名 -p 数据库名 > 导出的文件名mysqldump -–add-drop-table -uusername -ppassword da ...
- 第5篇-调用Java方法后弹出栈帧及处理返回结果
在前一篇 第4篇-JVM终于开始调用Java主类的main()方法啦 介绍了通过callq调用entry point,不过我们并没有看完generate_call_stub()函数的实现.接下来在ge ...
- Java实现MySQL数据库备份(二)
权声明:本文为博主原创文章,未经博主允许不得转载. 博客<Java实现MySQL数据库备份(一)>使用I/O流的方式实现了MySQL数据库的备份,这种方法比较繁杂,下面介绍另一种备份MyS ...
随机推荐
- 公众号的秘密,知道一个biz就够了
公众号的秘密,知道一个biz就够了 微信对于我来说,最有价值的是一个学习渠道,特别是搜狗微信搜索(http://weixin.sogou.com/)能够很方便的搜索公众账号和文章内容,PC端就能够获得 ...
- Linux中yum手动安装、手动建立仓库文件夹关联实现关联包自动安装、yum相关命令使用
yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及SUSE中的Shell前端软件包管理器.基於RPM包管理,能够从指 ...
- symfony 从request中获取当前登陆用户
$usernameToken = unserialize($request->getSession()->get('_security_main')); $user = $username ...
- linux 下编译安装php
系统环境: CentOS 6.5 x86_64 下载 PHP 源码包 # wget http://cn2.php.net/distributions/php-5.5.9.tar.bz2 # tar x ...
- c语言,全局变量,局部变量,外部函数,内部函数,stasic和extern的复习总结
@import url(http://i.cnblogs.com/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/c ...
- 异曲同工的AWK语句,学习
输出每个IP的网络连接数,是作很多事情的第一步: netstat -nat | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n ne ...
- C#调用WebService服务(动态调用)
原文:C#调用WebService服务(动态调用) 1 创建WebService using System; using System.Web.Services; namespace WebServi ...
- NoMachine 远程桌面控制
它是一个基于企业级对比套装的开源的终端服务器.它允许用户在连接速度缓慢或者窄带宽的情况下,对X11会话进行远程访问. NX项目提供一整套的运行库文件以及优化的来自X11,SMB,IPP,HTTP及其网 ...
- wireshark保存部分报文的方法
抓包时采用下列两种命令: tcpdump –s 0 –i eth0 host IP1 and IP2 and port 5060 and 5080 –v –w file1.pcap 与 tcpdump ...
- sgu495:概率dp / 推公式
概率题..可以dp也可以推公式 抽象出来的题目大意: 有 n个小球,有放回的取m次 问 被取出来过的小球的个数的期望 dp维护两个状态 第 i 次取出的是 没有被取出来过的小球的 概率dp[i] 和 ...