runtime.exec 去执行命令 返回 process 读取process的输入流 把数据写入执行文件里
private static String userName = ReadConfig.getProperty("db.username");
private static String password = ReadConfig.getProperty("db.password");
private static String dbPath = ReadConfig.getProperty("db.path");
private static String backUpPath = ReadConfig.getProperty("db.backUpPath");
private static String dbName = ReadConfig.getProperty("db.Name");
private static String dbHost = ReadConfig.getProperty("db.host");
private static String separator = File.separator;
/**
* 备份
* @param fileName
* @return
* @throws IOException
*/
public static String backup(String fileName) throws IOException {
String filePath = null;
try {
Runtime runtime = Runtime.getRuntime();
Process process = runtime.exec(dbPath + separator + "mysqldump -u"+userName + " -p" + password + " " + dbName );
InputStream inputStream = process.getInputStream();//得到输入流,写成.sql文件
InputStreamReader reader = new InputStreamReader(inputStream, "utf-8");
BufferedReader br = new BufferedReader(reader);
String s = null;
StringBuffer sb = new StringBuffer();
while((s = br.readLine()) != null){
sb.append(s+"\r\n");
}
s = sb.toString();
File file = new File(backUpPath + fileName + ".sql" );
file.getParentFile().mkdirs();
FileOutputStream fileOutputStream = new FileOutputStream(file);
fileOutputStream.write(s.getBytes());
fileOutputStream.close();
br.close();
reader.close();
inputStream.close();
} catch (Exception e) {
e.printStackTrace();
}
return filePath;
}
/**
* 还原
* @param fileName
* @throws IOException
*/
public static void restore(String fileName) throws IOException {
try {
Runtime runtime = Runtime.getRuntime();
// Process process = runtime.exec("C:\\Program Files\\MySQL\\MySQL Server 5.7\\bin\\mysql -u root -p123456 --default-character-set=utf8 huihangjinrong");
Process process = runtime.exec(dbPath + separator + "mysql -u"+userName + " -p" + password + " --default-character-set=utf8 " + dbName );
OutputStream outputStream = process.getOutputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(backUpPath + fileName + ".sql" )));
String str = null;
StringBuffer sb = new StringBuffer();
while((str = br.readLine()) != null){
sb.append(str+"\r\n");
}
str = sb.toString();
OutputStreamWriter writer = new OutputStreamWriter(outputStream,"utf-8");
writer.write(str);
writer.flush();
outputStream.close();
br.close();
writer.close();
} catch (Exception e) {
e.printStackTrace();
}
}
package com.work.oa.sys.utils;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.Properties;
public class ReadConfig {
static Properties properties = new Properties();
static {
try {
String path = "/config.properties";
properties.load(ReadConfig.class.getResourceAsStream(path));
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
public final static String getProperty(String key) {
return properties.getProperty(key);
}
}
db.path=C\:\\Program Files\\MySQL\\MySQL Server 5.5\\bin
db.username=root
db.password=123456
db.host=localhost
db.backUpPath=D\:\\backupDb\\
db.Name=workoass