`
永恒的三号
  • 浏览: 44810 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

在JSP页面调用JAVA方法实现MySQL数据库的备份和恢复

阅读更多

今天弄了好久,终于搞定了这个问题。使用java代码实现数据库的备份。

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>

 

分享到:
评论
4 楼 norain1988 2014-04-10  
为啥我备份出来的文件0kb喃
3 楼 江河水海 2012-11-11  
可以执行命令。
备份功能现在已经好了,可以正常运行了。谢谢
2 楼 永恒的三号 2012-11-08  
其实就是命令来实现的,只是我们通过java来执行sql命令。你看看你的mysql的环境里面可以执行命令吗?
1 楼 江河水海 2012-10-25  

在JSP页面调用JAVA方法实现MySQL数据库的备份和恢复

备份可以完全实现但是使用恢复的时候报下面这个错误
Cannot run program "mysqladmin": CreateProcess error=2, ?????????
求解

相关推荐

    java jsp实现mysql备份还原 代码

    ### Java JSP 实现 MySQL 数据库备份与还原 #### 知识点概述 本文将详细介绍如何使用 Java Bean 技术配合 JSP 来实现 MySQL 数据库的备份与还原功能。在实际开发过程中,数据库的备份与恢复是非常重要的环节,它...

    jsp备份mysql数据库,用属性文件操作

    在JSP中执行MySQL数据库备份,通常涉及创建一个Servlet或者JSP页面,该页面将调用Java代码来执行备份操作。 `mysql_util.java`可能是一个包含数据库操作逻辑的类文件。这个类可能包含了连接数据库、执行SQL语句...

    Java+JSP+Mysql实现Web学校教材管理系统

    本文将详细解析一个利用Java、JSP(Java Server Pages)和MySQL数据库技术构建的Web学校教材管理系统。该系统旨在为学校提供便捷的教材管理平台,实现管理员对教材资源的高效管理和维护。 首先,我们要理解这个系统...

    基于Myeclipse与MySQL数据库表格的增删改查

    本教程将详细介绍如何在Myeclipse中使用Java JSP技术与MySQL数据库进行交互,实现表格的增删改查功能。 1. **环境搭建** - 安装Myeclipse:首先确保已经安装了Myeclipse,这是开发Java Web应用的基础。 - 安装...

    数据库备份与还原

    下面将详细阐述数据库备份与还原的基本概念、方法以及在JSP中实现这一功能的步骤。 1. **数据库备份**: - **全备**:备份整个数据库,包括所有数据和结构信息。这是最全面的备份方式,但通常耗时较长。 - **增量...

    基于jsp+javaBean+Mysql 进销存,数据库完整备份

    综上所述,"基于jsp+javaBean+Mysql 进销存,数据库完整备份"是一个采用传统Java Web技术栈构建的企业级进销存管理系统,通过合理的设计和编程实践,实现了高效的数据管理和业务流程控制,为企业的日常运营提供了强大...

    MySql(JSP版)数据库管理系统

    MySQL(JSP版)数据库管理系统是一个适合初学者的实践项目,它涵盖了数据库管理和Web开发的基础知识,特别是如何在Java服务器页面(JSP)中与MySQL数据库进行交互。这个系统允许用户执行基本的数据操作,如添加...

    mysql数据库家教系统

    【标题】"mysql数据库家教系统"涉及到的关键技术点包括MySQL数据库管理和JavaWeb与JavaScript的交互,这是一款针对家教服务的网站应用。 【MySQL数据库】是关系型数据库管理系统,用于存储和管理家教系统中的各类...

    jSP课件(与MYSQL连接)

    通过这些基础操作,开发者能够实现JSP页面与MySQL数据库的数据交互,从而创建动态、数据驱动的Web应用程序。 在实际开发中,通常会使用诸如Spring框架的JdbcTemplate或MyBatis等高级库来简化数据库操作,提高代码的...

    学生信息管理系统,WEB(jsp)-MySQL

    本文将深入探讨一个基于JSP(JavaServer Pages)和MySQL数据库的学生信息管理系统,该系统由MyEclipse集成开发环境实现,旨在提供一个高效、便捷的方式来管理学生的个人信息。通过这个系统,我们可以理解如何利用Web...

    备份数据库

    在“数据库备份还原”这个文件中,可能包含了如何使用JSP进行数据库备份和还原的具体代码示例。通过学习这些示例,开发者可以更好地理解和实践上述步骤,为自己的项目建立可靠的数据保护机制。 总之,备份数据库是...

    jsp旅游网站SQL数据库

    在Web开发领域,JSP(JavaServer Pages)和SQL数据库是构建动态网站的重要技术。本项目是一个基于JSP的旅游网站,它利用SQL数据库来存储和管理旅游相关的数据,如景点信息、旅游套餐、用户预订等。ODBC(Open ...

    java框架开发的食堂管理系统+完整数据库备份

    【Java框架开发的食堂管理系统+完整数据库备份】是基于Java技术栈实现的一款高效、便捷的食堂管理软件。这个系统利用了Java强大的后端处理能力和灵活的框架设计,旨在提升食堂运营效率,优化就餐体验,同时提供了...

    Jsp+Mysql文件管理系统

    "Jsp+Mysql文件管理系统"是一个基于Java服务器页面(JSP)技术和MySQL数据库构建的文件存储和管理解决方案。这个系统旨在提供一个高效、安全且易于使用的平台,用于组织、检索和操作各种类型的文件。 首先,JSP是...

    一个jsp+javaBean写的企业网站(后台比较好,数据库是mysql)

    它们在JSP中作为“bean”对象被引用,通过JSP标签或者EL(Expression Language)表达式调用其方法,实现数据的读取、修改和操作。在本项目中,JavaBean可能包含了用户管理、产品管理、订单处理等核心业务逻辑。 3. ...

    人事管理系统(java+mysql)

    在本系统中,JavaBean可能包含对数据库的操作、计算工资、处理考勤等方法,这些方法被Jsp调用来执行相应的业务功能。 3. **MySQL数据库**:MySQL是一个开源的关系型数据库管理系统,因其高效、稳定和易用而广泛应用...

    基于java的图书管理系统(jsp+mysql)

    图书管理系统是一种常见的信息管理应用,它采用Java编程语言,结合JSP(JavaServer Pages)技术和MySQL数据库,实现对图书信息的存储、检索、借阅、归还等功能。这个系统设计的目标是提供高效、便捷的图书资源管理...

    小型网站java mysql

    【标题】:“小型网站java mysql”意味着我们正在讨论使用Java编程语言和MySQL数据库来构建一个小型网站。在这样的系统中,Java通常用于后端开发,处理业务逻辑和数据交互,而MySQL作为关系型数据库管理系统(RDBMS...

    基于JSP的汽车租赁管理系统的设计与实现

    在实现过程中,JSP页面通常包含HTML、CSS、JavaScript以及嵌入式的Java代码,用于动态生成网页内容。JavaScript可以用于前端表单验证,提高用户体验。JSP中的Java代码主要用于数据的读取和写入,通过Java的Servlet ...

Global site tag (gtag.js) - Google Analytics