///实体类

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 org.apache.commons.dbcp.BasicDataSource;

import org.apache.commons.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/2006 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数据库相关推荐

  1. java如何向mysql插入_java中怎么向数据库插入数据 ?

    展开全部 Java程序向数据库中插入数据,代码如下://首先创建数据库,(access,oracle,mysql,sqlsever)其中之一,32313133353236313431303231363 ...

  2. java和连接数据库的驱动_java中连接各数据库的驱动类和连接方式

    1.JAVA连接ACCESS数据库 Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); String url="jdbc:odb ...

  3. java图片保存文件到数据库_java保存图片内容到数据库

    本文使用mysql数据库举例插入图片到数据库和从数据库取出图片在页面显示: 一.建表 创建一个测试保存图片的表 create table t_save_img( name varchar(200), ...

  4. java spring mysql配置_java相关:mysql+spring+mybatis实现数据库读写分离的代码配置

    java相关:mysql+spring+mybatis实现数据库读写分离的代码配置 发布于 2020-4-4| 复制链接 分享一篇关于关于mysql+spring+mybatis实现数据库读写分离的代 ...

  5. java mysql 事物_java基础之MySQL事务和视图

    第三节 事务和视图 3.1事务 事务是用来维护数据库完整性的,它能够保证一系列的MySQL操作要么全部执行,要么全不执行.举一个例子来进行说明,例如转账操作:A账户要转账给B账户,那么A账户上减少的钱 ...

  6. 为什么链接不上mysql数据库_java链接不上数据库,怎么解决!

    居正w 去年刚好做过这个,给你贴下我的链接代码try {        Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver ...

  7. java获取达梦数据库_Java连接达梦数据库驱动dm_jdbc

    [实例简介] Java连接达梦数据库驱动dm_jdbc: dm_jdbc\com.dameng.floader.jar dm_jdbc\com.dameng.impexp.jar dm_jdbc\Dm ...

  8. java 清空一个list数据库_java – JPA EntityManager删除数据库中的所有记录

    我有一个插入我的数据库的Servlet.这工作正常.第二个Servlet显示第一个插入的内容,但每当我运行显示的Servlet时,我所有表中的所有记录都将被删除!我的JPA实现是 EclipseLin ...

  9. java 不能执行mysql存储过程_java无法执行mysql中的函数及存储过程的.sql备份文件...

    需求:用java程序执行[包含数据&结构&函数&存储过程]的.sql备份文件 问题记录: 1.在执行完insert类型的语句后,中文内容会显示乱码. 解决:将mysql参数中c ...

最新文章

  1. 在线学位课程_您在四年制计算机科学学位课程中学到的知识
  2. CloudStats :一款SaaS 服务器监控工具
  3. 用python打造一款文件搜索工具,所有功能自己定义!
  4. 字符串按单词逆序输出c 语言,字符串中的每个单词倒序输出问题
  5. linux 查看共享内存最大值,linux上更改共享内存的最大值
  6. Android学习之网上商城(上)
  7. 6月第二周中国五大顶级域名增2.4万 美国减6.8万
  8. 四.激光SLAM框架学习之A-LOAM框架---项目工程代码介绍---2.scanRegistration.cpp--前端雷达处理和特征提取
  9. Matlab打开文件替换变量,读取matlab某个路径下的“.mat”文件,改变文件中的内容,并以原名字,变量保存...
  10. bzoj 3261 最大异或和【可持久化trie】
  11. AT4 more about the sphere
  12. python编程入门指南-Python 入门指南
  13. shell win10 改成cmd_win10系统必做优化,让你的电脑告别卡顿,运行速度至少提升20%...
  14. 「leetcode」127. 单词接龙【广度优先搜索】超详细讲解!
  15. Android 还可以走多久?
  16. Windows2012开机启动项设置
  17. 通用技术 支付笔记之 PayPal 支付原理
  18. mfc 使用flash控件注意事项
  19. Android 10.0设置默认sim1卡使用数据流量和发送短信
  20. C语言求卢卡斯序列,卢卡斯数列 斐波那契数列和卢卡斯数列!

热门文章

  1. Spring Boot2 集成 jasypt 3.0.4 配置文件敏感信息加密
  2. 导入Oracle 数据库镜像,创建Oracle虚拟机_01
  3. 怎样把间隔的几个commit整理成1个呢?
  4. python程序员自我评价_写给程序员的简明 Python(1)
  5. 大数据可视化html模板开源_8个可靠好用的开源数据可视化工具推荐
  6. 申请美国计算机科学,美国计算机科学的申请特点
  7. vs未能找到程序集platform.winmd_PP体育直播大连人VS恒大:新老8冠王首尾对决竟有十大看点...
  8. java http get_我是如何进入阿里巴巴的-面向春招应届生Java面试指南(九)
  9. python的简单程序代码_小白学编程?从一个简单的程序开始学习Python编程
  10. android studio中断,Android Studio是否有任何修复方法可以在Macbook Pro中断开测试设备的连接?...