mysql还原,MySql备份还原

.....
//获取数据库配置参数
ApplicationContext context = new ClassPathXmlApplicationContext(
"applicationContext.xml");
BasicDataSource ba = (BasicDataSource) context.getBean("dataSource");
setUsername(ba.getUsername());
setPassword(ba.getPassword());
String url = ba.getUrl();
url = url.substring(13, url.length());
String[] temp = url.split("/");
String[] temp1 = temp[0].split(":");
setHost(temp1[0]);
setPORT(temp1[1]);
for (int i = 0; i < temp[1].length(); i++) {
String temp2 = temp[1].charAt(i) + "";
if (temp2.equals("?")) {
//数据库名
setDbname(temp[1].substring(0, i));//
}
}
......
......
//mysql备份命令
String mysql = "mysqldump -u" +getUsername()+
" -p" + getPassword() +
" --opt --default-character-set=utf8 -h"+getHost()+
" -P"+getPORT()+" " + getDbname();//
//+" >"+"\""+backPath+"\"";
Process p = rt.exec(mysql);
InputStream in = p.getInputStream();// 控制台的输出信息作为输入流
InputStreamReader xx = new InputStreamReader(in, "utf8");// 设置输出流编码为utf8。
String inStr;
StringBuffer sb = new StringBuffer("");
String outStr;
// 组合控制台输出信息字符串
BufferedReader br = new BufferedReader(xx);
while ((inStr = br.readLine()) != null) {
sb.append(inStr + "\r\n");
}
outStr = sb.toString();
// 要用来做导入用的sql目标文件:
FileOutputStream fout = new FileOutputStream(backPath);
OutputStreamWriter writer = new OutputStreamWriter(fout, "utf8");
writer.write(outStr);
// 用flush()方法则避免中文乱码
writer.flush();
// 关闭输入输出流
in.close();
xx.close();
br.close();
writer.close();
fout.close();
......
......
//mysql还原命令
String mysql = "mysql -u" + getUsername() + " -p"
+ getPassword() + " " + getDbname() + " ";
//<" + "\""+ sqlPath + "\"";
// 调用 mysql 的 cmd:
Process child = rt.exec(mysql);
OutputStream out = child.getOutputStream();//控制台的输入信息作为输出流
String inStr;
StringBuffer sb = new StringBuffer("");
String outStr;
BufferedReader br = new BufferedReader(new InputStreamReader(
new FileInputStream(sqlPath), "utf8"));
while ((inStr = br.readLine()) != null) {
sb.append(inStr + "\r\n");
}
outStr = sb.toString();
OutputStreamWriter writer = new OutputStreamWriter(out, "utf8");
writer.write(outStr);
//用flush()方法避免中文乱码
writer.flush();
// 关闭输入输出流
out.close();
br.close();
writer.close();
......
Tags:  mysql还原

延伸阅读

最新评论

发表评论