失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > java备份还原mysql数据库_Java备份还原Mysql数据库

java备份还原mysql数据库_Java备份还原Mysql数据库

时间:2021-08-23 07:59:04

相关推荐

java备份还原mysql数据库_Java备份还原Mysql数据库

///实体类

package com.ews.util;

/**

* 系统备份展示对象

*

* */

public class DataFile {

private String fileName;//备份文件的名称

private String fileDate;//备份文件的日期

private String filePath;//备份文件的地址

private String fileSize;//备份文件的大小

public String getFileSize() {

return fileSize;

}

public void setFileSize(String fileSize) {

this.fileSize = fileSize;

}

public String getFileName() {

return fileName;

}

public void setFileName(String fileName) {

this.fileName = fileName;

}

public String getFileDate() {

return fileDate;

}

public void setFileDate(String fileDate) {

this.fileDate = fileDate;

}

public String getFilePath() {

return filePath;

}

public void setFilePath(String filePath) {

this.filePath = filePath;

}

}

///实现备份代码

package com.ews.action;

import java.io.BufferedOutputStream;

import java.io.DataInputStream;

import java.io.DataOutputStream;

import java.io.File;

import java.io.FileInputStream;

import java.io.FileNotFoundException;

import java.io.FileOutputStream;

import java.sql.Date;

import java.text.DecimalFormat;

import java.text.SimpleDateFormat;

import java.util.ArrayList;

import java.util.List;

import mons.dbcp.BasicDataSource;

import mons.fileupload.FileItem;

import org.apache.struts2.ServletActionContext;

import org.springframework.context.ApplicationContext;

import org.springframework.context.support.ClassPathXmlApplicationContext;

import com.ews.util.DataFile;

public class DataAction extends EwsAction{

private String username;

private String password;

private String host;

private String PORT;

private String dbname;

private List dataFiles = new ArrayList();

private File reductionFile;

public File getReductionFile() {

return reductionFile;

}

public void setReductionFile(File reductionFile) {

this.reductionFile = reductionFile;

}

public List getDataFiles() {

return dataFiles;

}

public void setDataFiles(List dataFiles) {

this.dataFiles = dataFiles;

}

public String getHost() {

return host;

}

public void setHost(String host) {

this.host = host;

}

public String getPORT() {

return PORT;

}

public void setPORT(String pORT) {

PORT = pORT;

}

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 String getDbname() {

return dbname;

}

public void setDbname(String dbname) {

this.dbname = dbname;

}

/**

* 删除

* */

public String delete(){

String fileName = request.getParameter("fileName");

System.out.println(fileName);

String backPath = ServletActionContext.getServletContext().getRealPath("/")+"ewssite/back/"+fileName;

File file = new File(backPath);

file.delete();

return "delete";

}

/**

* 得到备份文件的List集合

*

* */

public String findList(){

String backPath = ServletActionContext.getServletContext().getRealPath("/")+"ewssite/back/";

File file = new File(backPath);

if (!file.exists())

return "findListData";

File[] file1 = file.listFiles();

for (int i = 0; i < file1.length; i++) {

if(file1[i].getName().equals("ramdit.txt")) continue;

SimpleDateFormat sdf= new SimpleDateFormat("MM/dd/yyyy HH:mm:ss");

//前面的lSysTime是秒数,先乘1000得到毫秒数,再转为java.util.Date类型

java.util.Date dt = new Date(file1[i].lastModified());

String sDateTime = sdf.format(dt); //得到精确到秒的表示:08/31/ 21:08:00

DataFile dataFile = new DataFile();

dataFile.setFileName(file1[i].getName());

dataFile.setFileDate(sDateTime);

String path = request.getContextPath();

String filePath = request.getScheme() + "://"+ request.getServerName() + ":" + request.getServerPort()+ path + "/ewssite/back/"+file1[i].getName();

dataFile.setFilePath(filePath);

DecimalFormat df = new DecimalFormat( ".## ");

dataFile.setFileSize(df.format(file1[i].length()/1024000f));

dataFiles.add(dataFile);

}

return "findListData";

}

/**

* 配置 Mysql bin目录

* */

public void getConfig(){

ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");

BasicDataSource ba = (BasicDataSource)context.getBean("dataSource");

setUsername(ba.getUsername());

setPassword(ba.getPassword());

String url = ba.getUrl();

url = url.substring(13, url.length());

String[] temp = url.split("/");

String[] temp1 = temp[0].split(":");

setHost(temp1[0]);

setPORT(temp1[1]);

for (int i = 0; i < temp[1].length(); i++) {

String temp2 = temp[1].charAt(i)+"";

if(temp2.equals("?")){

setDbname(temp[1].substring(0,5));

}

}

}

/**

* 备份

* */

public String backup(){

getConfig();

//得到配置文件

try {

Runtime rt = Runtime.getRuntime();

String backPath = ServletActionContext.getServletContext().getRealPath("/")+"ewssite/back/"+System.currentTimeMillis()+".sql";

String mysql = "mysqldump -u" + getUsername()+ " -p" + getPassword() + " --default-character-set=utf8 -h"+getHost()+" -P"+getPORT()+" " + getDbname() +" >"+"\""+backPath+"\"";

Process proc = rt.exec("cmd.exe /c "+mysql);// 设置导出编码为utf8。这里必须是utf8

//String backExe = ServletActionContext.getServletContext().getRealPath("/")+"bin/mysqldump.exe";

//String mysql = getDbname()+ " -u" + getUsername()+ " -p" + getPassword() + " --default-character-set=utf8 -h"+getHost()+" -P"+getPORT()+" >"+"\""+backPath+"\"";

int tag = proc.waitFor();// 等待进程终止

} catch (Exception e) {

e.printStackTrace();

}

return "backup";

}

/**

* 还原

* */

public String load(){

String sqlPath="";

if(request.getParameter("selectName")!=null)

sqlPath = request.getParameter("selectName");

if(reductionFile!=null){

String name = upload(reductionFile);

sqlPath = ServletActionContext.getServletContext().getRealPath("/")+"ewssite/back/" + name;

}

// System.out.println(sqlPath);

if(sqlPath.substring(sqlPath.lastIndexOf(".")+1).equals("sql")){

getConfig();

setHost("127.0.0.1");

setUsername("root");

setPassword("root");

setDbname("test");

//得到配置文件

try {

Runtime rt = Runtime.getRuntime();

String createDb = "mysqladmin -u" + getUsername()+ " -p" + getPassword() + " create "+getDbname();

String mysql = "mysql -u" + getUsername()+ " -p" + getPassword() + " "+getDbname()+"

相关文章

相关视频

如果觉得《java备份还原mysql数据库_Java备份还原Mysql数据库》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。