package com.qmth.qrzk.repository.utils;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;

public class MySQLDump {
	public static boolean sqlDump(String cmd,String filePath){
		boolean falg = false;
		try {
			Runtime run = Runtime.getRuntime();
			Process p = run.exec("cmd /c "+cmd);
			InputStream is = 	p.getInputStream();// 控制台的输出信息作为输入流  
			InputStreamReader isr = new InputStreamReader(is,"UTF-8");//设置输入流编码格式
			BufferedReader br = new BufferedReader(isr);
			//将控制台输入信息写入到文件输出流中
			FileOutputStream fos = new FileOutputStream(filePath);
			BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(fos,"UTF-8"));
			String temp = null;
			while( (temp = br.readLine()) !=null){
				bw.write(temp);
				bw.newLine();
			}
			bw.flush();
			bw.close();
			br.close();
			falg = true;
		} catch (IOException e) {
			throw new RuntimeException("请将mysql命令添加到path中！",e);
		}
		return falg;
	}
	
	//恢复数据库
	/**  
     * 导入  
     *  
     */  
    public static void sqlLoad(String cmd,String sqlPath) {   
        try {   
            Runtime rt = Runtime.getRuntime();   
  
            // 调用 mysql 的 cmd: C:/Program Files/MySQL/MySQL Server 5.1/bin/mysql.exe -uroot -proot email  
            Process child = rt.exec(cmd);   
            OutputStream out = child.getOutputStream();//控制台的输入信息作为输出流   
            //输入流
            BufferedReader br = new BufferedReader(new InputStreamReader(   
                    new FileInputStream(sqlPath), "utf8"));   
            //输出流
            OutputStreamWriter writer = new OutputStreamWriter(out, "utf8");   
            String inStr;   
            while ((inStr = br.readLine()) != null) {   
                writer.write(inStr);  
                writer.write("\r\n");
            }   
            writer.flush();   
            // 关闭输入输出流   
            out.close();   
            br.close();   
            writer.close();   
        } catch (Exception e) {   
            e.printStackTrace();   
        }   
  
    }  
	public static void main(String[] args) {
		
//		sqlDump(new String[]{"C:/Program","Files/MySQL/MySQL","Server","5.5/bin/mysqldump","-uroot","-proot","qrzk_dev"},"e:/email.sql");
//		sqlDump("C:/Program Files/MySQL/MySQL Server 5.5/bin/mysqldump -uroot -proot  qrzk_dev","e:/email.sql");
//		sqlLoad("C:/Program Files/MySQL/MySQL Server 5.1/bin/mysql.exe -uroot -proot email","c:/email.sql");
	}
}
