使用java代码导出数据库
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("数据库备份失败!!!"); } } }2.导出MySQL数据库
mysql导出的话需要用到mysql的工具,直接使用下面方法的话需要在电脑上配置系统变量path,以便可以直接使用mysql工具。
配置方法如下:
我的mysql安装路径为:C:Program FilesMySQLMySQL Server 5.6in
右键我的电脑,打开属性面板,选择高级系统设置,打开环境变量面板,找到系统变量中的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 FilesMySQLMySQL Server 5.6in //进入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);