1.导出Oracle数据库
package cn.hyk.www.util;
import java.io.File;
import java.io.IOException;
public class ExportOracle {
/**
* @param userName 用户名
* @param password 密码
* @param host 数据库所在地址
* @param savePath 保存路径
* @param fileName 保存文件名
*/
public static boolean Export(String userName, String passWord, String host, String savePath, String fileName){
File saveFile = new File(savePath);
if (!saveFile.exists()) {// 如果目录不存在
saveFile.mkdirs();// 创建文件夹
}
try {
StringBuffer sb = new StringBuffer("cmd /k exp ");
sb.append(userName + "/" + passWord + "@" + host);
sb.append(" file=" + savePath + "/" + fileName + ".dmp");
//拼接效果: cmd /k exp wy/wy@192.168.123.111:1521/orcl file=E:/oracle/wy.dmp
//使用cmd命令导出数据库
Runtime.getRuntime().exec(sb.toString());
} catch (IOException e) {
e.printStackTrace();
return false;
}
return true;
}
public static void main(String[] args){
String userName="wy";
String passWord="wy";
String host="192.168.123.111:1521/orcl";
String savePath="E:/oracle";
String fileName="wy";
if (ExportOracle.Export(userName, passWord, host, savePath, fileName)) {
System.out.println("数据库备份成功!!!");
} else {
System.out.println("数据库备份失败!!!");
}
}
}
mysql导出的话需要用到mysql的工具,直接使用下面方法的话需要在电脑上配置系统变量path,以便可以直接使用mysql工具。
配置方法如下:
我的mysql安装路径为:C:\Program Files\MySQL\MySQL Server 5.6\bin
右键我的电脑,打开属性面板,选择高级系统设置,打开环境变量面板,找到系统变量中的path,点击编辑,将mysql工具文件夹添加到里面(即上面的bin目录)
然后,我们就可以使用下面的java方法导出mysql数据库:
package cn.hyk.www.util;
import java.io.File;
import java.io.IOException;
public class ExportMySQL {
/**
* @param host 需要导出的数据库地址
* @param userName 用户名
* @param passWord 密码
* @param dataBase 数据库名称
* @param savePath 保存路径
* @param fileName 文件名称
*/
public static boolean Export(String host, String userName, String passWord, String dataBase, String savePath,
String fileName) {
try {
File saveFile = new File(savePath);
if (!saveFile.exists()) {// 如果目录不存在
saveFile.mkdirs();// 创建文件夹
}
StringBuffer sb = new StringBuffer("cmd /k");
sb.append(" mysqldump -h" + host);
sb.append(" -u" + userName);
sb.append(" -p" + passWord);
sb.append(" " + dataBase);
sb.append(" >" + savePath);
sb.append("/" + fileName + ".sql");
//拼接效果: mysqldump -h192.168.123.128 -ukai -p123456 ycgov >E:/ycgov/ycgov.sql //设置MySQL导出
//使用cmd命令导出数据库
Runtime.getRuntime().exec(sb.toString());
} catch (IOException e) {
e.printStackTrace();
return false;
}
return true;
}
public static void main(String[] args) {
//C:\Program Files\MySQL\MySQL Server 5.6\bin //进入MYSQL工具操作文件夹
String host="192.168.123.128";
String userName="kai";
String passWord="123456";
String dataBase="ycgov";
String savePath="E:/ycgov";
String fileName="ycgov";
if(ExportMySQL.Export(host, userName, passWord, dataBase, savePath, fileName)){
System.out.println("数据库备份成功!!!");
}else{
System.out.println("数据库备份失败!!!");
}
}
}
后记:
问题:上面的导出MySQL数据库,有时导出的文件一直会是0kb,没有东西。
原因如下:罪魁祸首是Program Files文件夹的空格,找不到mysqldump工具了。如果你安装的MySQL文件目录没有空格和汉字的话应该不会出现问题。
解决方法:将bin目录下的mysqldump工具复制一份放到一个盘符下,如C盘根目录。将语句修改一下,字符串拼接的第一句修改为
sb.append(" C:\\mysqldump -h" + host);