使用java程序定时备份数据库文件和恢复数据库文件

注:要将mysql的bin目录加入到环境变量Path中 

1、将MySql中的数据库定时导出到文件中 备份 

import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;

import mail.MailSenderInfo;
import mail.SimpleMailSender;

import org.jeecgframework.web.demo.service.test.TaskDemoServiceI;
import org.springframework.stereotype.Service;

@Service("taskDemoService")
public class TaskDemoServiceImpl implements TaskDemoServiceI {

	public void works() {
		// 数据库导出
		String user = "root"; // 数据库帐号
		String password = "root"; // 登陆密码
		String database = "oapms"; // 需要备份的数据库名
		Date currentDate = new Date();
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd_HH-mm-ss");
		String sdfDate = sdf.format(currentDate);
		String filepath = "e:\\oapms_" + sdfDate + ".sql"; // 备份的路径地址
		// 注意mysqldump是调用mysql数据库的一个组件,在未在系统变量中声明的话,要在这里写mysqldump的完整路径
		String stmt1 = "mysqldump " + database + " -u " + user + " -p"
				+ password + " --result-file=" + filepath;
		try {
			Runtime.getRuntime().exec(stmt1);
			System.out.println("数据已导出到文件" + filepath + "中");
		} catch (IOException e) {
			e.printStackTrace();
		}

	}

}
2、将数据从磁盘上的文本文件还原到MySql中的数据库 
package util;

import java.io.IOException;

public class Beifen {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// 还原MySql数据库
		String filepath = "e:\\oapms_11-35-00.sql"; // 备份的路径地址
		// 新建数据库test

		String stmt1 = "mysqladmin -u root -proot create testbeifen";

		String stmt2 = "mysql -u root -proot testbeifen < " + filepath;
		String[] cmd = { "cmd", "/c", stmt2 };

		try {
			Runtime.getRuntime().exec(stmt1);
			Runtime.getRuntime().exec(cmd);
			System.out.println("数据已从 " + filepath + " 导入到数据库中");
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
}

附: 定时任务的配置文件
 
  




	
	
	
	
	
	

		
		
		
	
	
		
		
	
	
	
		
			
				
			
		
	



 
  


你可能感兴趣的:(数据库)