现在的位置: 首页 > 综合 > 正文

使用java备份还原MySQL数据库

2013年04月11日 ⁄ 综合 ⁄ 共 1320字 ⁄ 字号 评论关闭

    最近做毕业设计的时候需要用到备份还原MySQL数据库,去网上找了些代码没有一个能用的。最终自己连猜带蒙终于给弄出来了, 已测试能用了!

代码如下:

import java.io.*;

public class BackupAndLoad {
 public static void main(String[] args) {

  backup();
   load();
 }

 /**
  * 备份检验一个sql文件是否可以做导入文件用的一个判断方法:把该sql文件分别用记事本和ultra
  * edit打开,如果看到的中文均正常没有乱码,则可以用来做导入的源文件(不管sql文件的编码格式如何,也不管db的编码格式如何)
  */
 public static void backup() {

   String user = "root"; // 数据库帐号
   String password = "70689341"; // 登陆密码
   String database = "finacing"; // 需要备份的数据库名
   String filepath = "e://finacing.sql"; // 备份的路径地址
 
   String stmt1 = "mysqldump " + database + " -u " + user + " -p" +
       password + " --default-character-set=gb2312 --result-file=" + filepath;
   //--default-character-set这儿设为你安装数据库时所选择的语言,比如说你安装MySQL里用的默认的UTF-8,这儿
   //就设为UTF8,若是gb2312的话应设为gb2312,如果这儿设得不对的话,你用ultraedit打开这个备份后的sql文件时,
   //中文部分显示乱码。
   try {
    Runtime.getRuntime().exec(stmt1);
    System.out.println("数据已导出到文件" + filepath + "中");
   } catch (IOException e) {
    e.printStackTrace();
   }

 }

 /**
  * 导入
  *
  */
 public static void load() {

   String filepath = "e://finacing.sql"; // 备份的路径地址
  
   // 新建数据库finacing
   String stmt1 = "mysqladmin -u root -p70689341 create finacing";
   //-p后面加的是你的密码
   String stmt2 = "mysql -u root -p70689341 finacing < " + filepath;
   String[] cmd = { "cmd", "/c", stmt2 };
 
   try {
    Runtime.getRuntime().exec(stmt1);
    Runtime.getRuntime().exec(cmd);
    System.out.println("数据已从 " + filepath + " 导入到数据库中");
   } catch (IOException e) {
    e.printStackTrace();
   }

 }
}

 

抱歉!评论已关闭.