调用以下方法就可以了:/**
* 导出数据库
*
* @return
*/
public boolean exportDataBase() {
boolean isSuccess = false;
String sIp = "";// IP
String sPort = "";// 端口
String sAccount = "";// 帐号
String sPassword = "";//密码
String sDBName = "";// 备份数据库名
String sBackupPath = "";// 备份路径
String sCommand = "", sResult = "";
sCommand += "cmd /c mysqldump.exe --compress --opt";
sCommand += " --host=" + sIp;
sCommand += " --port=" + sPort;
sCommand += " --user=" + sAccount;
sCommand += " --password=" + sPassword;
sCommand += " " + sDBName + " > ";
sCommand += "\"" + sBackupPath + "\"";
System.out.println("sCommand=" + sCommand);
// 执行命令
sResult = this.execCommand(sCommand);
System.out.println("sResult=" + sResult);
if ("".equals(sResult)) {
isSuccess = true;
}
return isSuccess;
}
/**
* 执行命令(使用cmd或者shell)
*
* @param sCommand
* @return
*/
public String execCommand(String sCommand) {
String sResult = "", sErrorResult = "";
try {
Runtime run = Runtime.getRuntime();
Process process = run.exec(sCommand);
BufferedReader input = new BufferedReader(new InputStreamReader(
process.getInputStream()));
BufferedReader error = new BufferedReader(new InputStreamReader(
process.getErrorStream()));
String line = null;
while ((line = input.readLine()) != null) {
sResult += line + "\n";
}
String errorLine = null;
while ((errorLine = error.readLine()) != null) {
sErrorResult += errorLine + "\n";
}
if (sErrorResult != null && sErrorResult.startsWith("ERROR")) {
sResult = sErrorResult;
}
input.close();
error.close();
} catch (Exception e) {
e.printStackTrace();
sResult = "";
}
return sResult;
}
2009年12月04日 18:23