使用java代码备份和还原数据
2016-10-11 09:45
281 查看
package cn.ogsu.vod.util;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
/**
* 数据库的备份与还原操作
* @author enter
* @date 2016年10月10日
*/
public class DbOperate {
/**
* 数据库表备份
* @throws Exception
*/
public static void tableBackup(String savePath,String tableName) throws Exception{
//从属性文件中获取操作数据库的相关属性
PageData pd=Tools.resolveDbPro();
String dbUser=pd.getString("dbUser");
String dbPort=pd.getString("dbPort");
String dbHost=pd.getString("dbHost");
String dbPass=pd.getString("dbPass");
String dbName=pd.getString("dbName");
Runtime runtime = Runtime.getRuntime();
//-u后面是用户名,-p是密码-p后面最好不要有空格,-family是数据库的名字
Process process = runtime.exec("mysqldump -h "+dbHost+" -P "+dbPort+" -u "+dbUser+" -p"+dbPass+" "+dbName+" "+tableName);
InputStream inputStream = process.getInputStream();//得到输入流,写成.sql文件
InputStreamReader reader = new InputStreamReader(inputStream);
BufferedReader br = new BufferedReader(reader);
String s = null;
StringBuffer sb = new StringBuffer();
while((s = br.readLine()) != null){
sb.append(s+"\r\n");
}
s = sb.toString();
File file = new File(savePath);
file.getParentFile().mkdirs();
FileOutputStream fileOutputStream = new FileOutputStream(file);
fileOutputStream.write(s.getBytes());
fileOutputStream.close();
br.close();
reader.close();
inputStream.close();
}
/**
*备份数据库
* @param savePath
* @throws Exception
*/
public static void dbBackup(String savePath) throws Exception{
//获取操作数据库的相关属性
PageData pd=Tools.resolveDbPro();
String dbUser=pd.getString("dbUser");
String dbPort=pd.getString("dbPort");
String dbHost=pd.getString("dbHost");
String dbPass=pd.getString("dbPass");
String dbName=pd.getString("dbName");
Runtime runtime = Runtime.getRuntime();
//-u后面是用户名,-p是密码-p后面最好不要有空格,-family是数据库的名字
Process process = runtime.exec("mysqldump -h "+dbHost+" -P "+dbPort+" -u "+dbUser+" -p"+dbPass+" "+dbName);
InputStream inputStream = process.getInputStream();//得到输入流,写成.sql文件
InputStreamReader reader = new InputStreamReader(inputStream);
BufferedReader br = new BufferedReader(reader);
String s = null;
StringBuffer sb = new StringBuffer();
while((s = br.readLine()) != null){
sb.append(s+"\r\n");
}
s = sb.toString();
File file = new File(savePath);
file.getParentFile().mkdirs();
FileOutputStream fileOutputStream = new FileOutputStream(file);
fileOutputStream.write(s.getBytes());
fileOutputStream.close();
br.close();
reader.close();
inputStream.close();
}
/**
* 执行sql文件
* @param savePath
* @throws Exception
*/
public static void dbRecover(String savePath) throws Exception{
//获取操作数据库的相关属性
PageData pd=Tools.resolveDbPro();
String dbUser=pd.getString("dbUser");
String dbPort=pd.getString("dbPort");
String dbHost=pd.getString("dbHost");
String dbPass=pd.getString("dbPass");
String dbName=pd.getString("dbName");
Runtime runtime = Runtime.getRuntime();
Process process = runtime.exec("mysql -h"+dbHost+" -P "+dbPort+" -u "+dbUser+" -p"+dbPass+" --default-character-set=utf8 "+dbName);
OutputStream outputStream = process.getOutputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(savePath)));
String str = null;
StringBuffer sb = new StringBuffer();
while((str = br.readLine()) != null){
sb.append(str+"\r\n");
}
str = sb.toString();
OutputStreamWriter writer = new OutputStreamWriter(outputStream,"utf-8");
writer.write(str);
writer.flush();
outputStream.close();
br.close();
writer.close();
}
}
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
/**
* 数据库的备份与还原操作
* @author enter
* @date 2016年10月10日
*/
public class DbOperate {
/**
* 数据库表备份
* @throws Exception
*/
public static void tableBackup(String savePath,String tableName) throws Exception{
//从属性文件中获取操作数据库的相关属性
PageData pd=Tools.resolveDbPro();
String dbUser=pd.getString("dbUser");
String dbPort=pd.getString("dbPort");
String dbHost=pd.getString("dbHost");
String dbPass=pd.getString("dbPass");
String dbName=pd.getString("dbName");
Runtime runtime = Runtime.getRuntime();
//-u后面是用户名,-p是密码-p后面最好不要有空格,-family是数据库的名字
Process process = runtime.exec("mysqldump -h "+dbHost+" -P "+dbPort+" -u "+dbUser+" -p"+dbPass+" "+dbName+" "+tableName);
InputStream inputStream = process.getInputStream();//得到输入流,写成.sql文件
InputStreamReader reader = new InputStreamReader(inputStream);
BufferedReader br = new BufferedReader(reader);
String s = null;
StringBuffer sb = new StringBuffer();
while((s = br.readLine()) != null){
sb.append(s+"\r\n");
}
s = sb.toString();
File file = new File(savePath);
file.getParentFile().mkdirs();
FileOutputStream fileOutputStream = new FileOutputStream(file);
fileOutputStream.write(s.getBytes());
fileOutputStream.close();
br.close();
reader.close();
inputStream.close();
}
/**
*备份数据库
* @param savePath
* @throws Exception
*/
public static void dbBackup(String savePath) throws Exception{
//获取操作数据库的相关属性
PageData pd=Tools.resolveDbPro();
String dbUser=pd.getString("dbUser");
String dbPort=pd.getString("dbPort");
String dbHost=pd.getString("dbHost");
String dbPass=pd.getString("dbPass");
String dbName=pd.getString("dbName");
Runtime runtime = Runtime.getRuntime();
//-u后面是用户名,-p是密码-p后面最好不要有空格,-family是数据库的名字
Process process = runtime.exec("mysqldump -h "+dbHost+" -P "+dbPort+" -u "+dbUser+" -p"+dbPass+" "+dbName);
InputStream inputStream = process.getInputStream();//得到输入流,写成.sql文件
InputStreamReader reader = new InputStreamReader(inputStream);
BufferedReader br = new BufferedReader(reader);
String s = null;
StringBuffer sb = new StringBuffer();
while((s = br.readLine()) != null){
sb.append(s+"\r\n");
}
s = sb.toString();
File file = new File(savePath);
file.getParentFile().mkdirs();
FileOutputStream fileOutputStream = new FileOutputStream(file);
fileOutputStream.write(s.getBytes());
fileOutputStream.close();
br.close();
reader.close();
inputStream.close();
}
/**
* 执行sql文件
* @param savePath
* @throws Exception
*/
public static void dbRecover(String savePath) throws Exception{
//获取操作数据库的相关属性
PageData pd=Tools.resolveDbPro();
String dbUser=pd.getString("dbUser");
String dbPort=pd.getString("dbPort");
String dbHost=pd.getString("dbHost");
String dbPass=pd.getString("dbPass");
String dbName=pd.getString("dbName");
Runtime runtime = Runtime.getRuntime();
Process process = runtime.exec("mysql -h"+dbHost+" -P "+dbPort+" -u "+dbUser+" -p"+dbPass+" --default-character-set=utf8 "+dbName);
OutputStream outputStream = process.getOutputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(savePath)));
String str = null;
StringBuffer sb = new StringBuffer();
while((str = br.readLine()) != null){
sb.append(str+"\r\n");
}
str = sb.toString();
OutputStreamWriter writer = new OutputStreamWriter(outputStream,"utf-8");
writer.write(str);
writer.flush();
outputStream.close();
br.close();
writer.close();
}
}
相关文章推荐
- java代码--mysql数据的备份和还原
- java代码实现mysql数据备份与恢复
- asp Access数据备份,还原,压缩类代码
- 使用轻松传送备份和还原用户数据
- java代码实现数据的备份和恢复
- java 使用mysql 的 blob 存储 protobuf 数据 的读写操作核心代码
- linux 平台下 postgres 使用 (安装 启动 关闭 数据备份 还原)
- 第02讲:正确使用织梦(DEDECMS)后台的数据备份与还原功能
- SQL Server 2008 中使用SQLDMO 备份数据 还原数据等
- 使用 Feed4JUnit 进行数据与代码分离的 Java 单元测试
- java、Extjs导出数据库里的数据至Excel并下载至本地进行数据备份方法之二——使用Action
- java代码执行mysql的数据备份和批量数据插入!
- mysql java使用PreparedStatement插入数据并返回id的代码
- java对oracle数据进行备份和还原
- 使用Handy Backup 6.2进行数据备份与还原(多图)
- ASP.NET中使用代码来进行备份和还原数据库
- java对 mysql数据的备份和还原
- java、Extjs导出数据库里的数据至Excel并下载至本地进行数据备份方法之一——使用servlet
- 使用轻松传送备份和还原用户数据
- 使用USMT备份和还原用户数据