ackage org.yu.dbback;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
public class DbBackMain extends Thread{
private InputStream insp = null;
private String type;
public DbBackMain(InputStream is, String type) {
insp = is;
this.type = type;
}
/**
* 备份数据库
*
*/
public static void runback() {
Runtime cmd = Runtime.getRuntime();
List<String> backup = new ArrayList<String>();
backup.add("mysqldump");
backup.add("--opt");
backup.add("--user=root");
backup.add("--lock-all-tables=true");
backup.add("--result-file=c:\\back_test.sql");
backup.add("test");
try {
Process p = cmd.exec((String[])backup.toArray(new String[0]),null);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/**
* 还原数据库
*
*/
public static void reback() {
Runtime cmd = Runtime.getRuntime();
List<String> sources = new ArrayList<String>();
sources.add("cmd.exe");
sources.add("/C");
sources.add("mysql < c:\\back_test.sql");
sources.add("--user=root");
sources.add("--database=test");
try {
Process p = cmd.exec((String[])sources.toArray(new String[0]),null);
DbBackMain dberror = new DbBackMain(p.getInputStream(),"ERROR");
DbBackMain dboutput = new DbBackMain(p.getInputStream(),"OUTPUT");
dberror.start();
dboutput.start();
System.out.println(p.waitFor());
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public void run() {
try {
InputStreamReader isr = new InputStreamReader(insp);
BufferedReader br = new BufferedReader(isr);
String line = null;
while((line = br.readLine()) != null) {
System.out.println(type + ">" + line);
}
}
catch (IOException ioe) {
ioe.printStackTrace();
}
}
public static void main(String[] args) {
runback();
// reback();
}
}