jsp + Servlet 备份MySQL数据库的方法
2013-03-13 00:19
429 查看
这是JavaBean里的两个方法,在Servlet调用backup和load方法,传入要保存的地址/ 恢复文件的地址。
public static void backup(String filePath) throws IOException{
try {
Runtime rt = Runtime.getRuntime();
Process child = rt.exec("mysqldump -hlocalhost -u用户名 -p密码 数据库名");
InputStream in = child.getInputStream();// 控制台的输出信息作为输入流
InputStreamReader xx = new InputStreamReader(in, "utf8");// 设置输出流编码为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(filePath);
OutputStreamWriter writer = new OutputStreamWriter(fout, "utf8");
writer.write(outStr);//写文件
// 注:这里如果用缓冲方式写入文件的话,会导致中文乱码,用flush()方法则可以避免
writer.flush();
// 别忘记关闭输入输出流
in.close();
xx.close();
br.close();
writer.close();
fout.close();
System.out.println("");
} catch (Exception e) {
e.printStackTrace();
}
}
// 恢复数据库文件
public static void load(String filePath) throws IOException{
try {
Runtime rt = Runtime.getRuntime();
Process child = rt.exec("mysql -u用户名 -p密码 数据库名");
OutputStream out = child.getOutputStream();//控制台的输入信息作为输出流
String inStr;
StringBuffer sb = new StringBuffer("");
String outStr;
BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(filePath), "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();
} catch (Exception e) {
e.printStackTrace();
}
}
public static void backup(String filePath) throws IOException{
try {
Runtime rt = Runtime.getRuntime();
Process child = rt.exec("mysqldump -hlocalhost -u用户名 -p密码 数据库名");
InputStream in = child.getInputStream();// 控制台的输出信息作为输入流
InputStreamReader xx = new InputStreamReader(in, "utf8");// 设置输出流编码为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(filePath);
OutputStreamWriter writer = new OutputStreamWriter(fout, "utf8");
writer.write(outStr);//写文件
// 注:这里如果用缓冲方式写入文件的话,会导致中文乱码,用flush()方法则可以避免
writer.flush();
// 别忘记关闭输入输出流
in.close();
xx.close();
br.close();
writer.close();
fout.close();
System.out.println("");
} catch (Exception e) {
e.printStackTrace();
}
}
// 恢复数据库文件
public static void load(String filePath) throws IOException{
try {
Runtime rt = Runtime.getRuntime();
Process child = rt.exec("mysql -u用户名 -p密码 数据库名");
OutputStream out = child.getOutputStream();//控制台的输入信息作为输出流
String inStr;
StringBuffer sb = new StringBuffer("");
String outStr;
BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(filePath), "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();
} catch (Exception e) {
e.printStackTrace();
}
}
相关文章推荐
- 在JSP页面调用JAVA方法实现MySQL数据库的备份和恢复
- JSP 实现 之 调用java方法实现MySQL数据库备份和恢复
- Servlet跳转到jsp页面的几种方法
- Linux自动备份MySQL数据库的实用方法
- JSP开发Servlet重写init()方法实例详解
- jsp、servlet中文乱码终极解决方法
- 黄聪:Mysql数据库还原备份提示MySQL server has gone away 的解决方法(备份文件数据过大)
- jsp实现Servlet文件下载的方法
- linux下使用crontab定时备份MYSQL数据库的方法:
- 如何在加载JSP页面时,同时调用servlet中的方法
- MySQL数据库常用备份方法和注意事项
- 使JSP/Servlet应用程序的八种方法
- java使用jsp servlet来防止csrf 攻击的实现方法(一)
- 简单实用的两种MySQL数据库备份的方法
- JSF运行时出现javax.servlet.jsp.JspException: Cannot find FacesContext处理方法
- 最快的MySql数据库备份方法
- Servlet跳转到jsp页面的几种方法
- 在servlet存储对象的实列化,然后通过jsp把对象中一个方法返回的是Arraylist集合 数据调用出来
- Myeclipse中修改servlet JSP等模板的方法
- 最简便的MySql数据库备份方法