|

楼主 |
发表于 2017-1-19 23:36:26
|
显示全部楼层
Model.prototype.backupClick = function(event){
var binPath=this.comp("input1").val();
var userName=this.comp("input2").val();
var pwd=this.comp("input3").val();
binPath="jdbc:mysql://127.0.0.1:3306/x5";
userName="root";
pwd="x5";
var params = {
binPath:binPath,
userName:userName,
pwd:pwd
};
justep.Baas.sendRequest({
"url" : "/yule/backup",
"action" : "getBackData",
"async" : false,
"params" : params,
"success" : function() {
alert("备份成功!")
}
});
};
使用上面的路径对吗,可生成的sql文件是空的,下面是我的java代码,参照网上的,稀里糊涂,页不知对不对,您给看看
package yule;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.io.UnsupportedEncodingException;
import java.sql.Connection;
import java.util.ArrayList;
import java.util.List;
import javax.naming.NamingException;
import com.alibaba.fastjson.JSONObject;
import com.justep.baas.action.ActionContext;
import com.justep.baas.data.DataUtils;
import com.justep.baas.data.Table;
import com.justep.baas.data.Transform;
import com.justep.baas.data.sql.SQLException;
public class BackupAndRestore {
private String mysqlBinPath;
private String username;
private String password;
public String getMysqlBinPath() {
return mysqlBinPath;
}
public void setMysqlBinPath(String mysqlBinPath) {
this.mysqlBinPath = mysqlBinPath;
}
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 BackupAndRestore(String mysqlBinPath, String username, String password) {
if (!mysqlBinPath.endsWith(File.separator)) {
mysqlBinPath = mysqlBinPath + File.separator;
}
this.mysqlBinPath = mysqlBinPath;
this.username = username;
this.password = password;
}
/**
* 备份数据库
*
* @param output
* 输出流
* @param dbname
* 要备份的数据库名
*/
public void backup(OutputStream output, String dbname) {
String command = "cmd /c " + mysqlBinPath + "mysqldump -u" + username
+ " -p" + password + " --set-charset=utf8 " + dbname;
PrintWriter p = null;
BufferedReader reader = null;
try {
p = new PrintWriter(new OutputStreamWriter(output, "utf8"));
Process process = Runtime.getRuntime().exec(command);
InputStreamReader inputStreamReader = new InputStreamReader(process
.getInputStream(), "utf8");
reader = new BufferedReader(inputStreamReader);
String line = null;
while ((line = reader.readLine()) != null) {
p.println(line);
}
p.flush();
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (reader != null) {
reader.close();
}
if (p != null) {
p.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
/**
* 备份数据库,如果指定路径的文件不存在会自动生成
*
* @param dest
* 备份文件的路径
* @param dbname
* 要备份的数据库
*/
public void backup(String dest, String dbname) {
try {
OutputStream out = new FileOutputStream(dest);
backup(out, dbname);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
public static JSONObject handleData(JSONObject params, ActionContext context) throws SQLException, NamingException, java.sql.SQLException {
String binPath = params.getString("binPath");
String userName = params.getString("userName");
String pwd = params.getString("pwd");
BackupAndRestore bak = new BackupAndRestore(binPath, userName, pwd);
bak.backup("d:\\x5.sql", "x5");
return null;
}
}
|
|