当我点击netbeans jbutton时如何备份和恢复sql数据库

时间:2016-04-14 16:57:38

标签: java sql netbeans

我想知道如何制作这个功能, 当我想在我的程序中备份我的数据库时,只需一次点击数据库就可以保存文档,当我点击恢复按钮时,它应该自动恢复数据库。

我的jFrame编程设计 这是主界面代码

package bankapplication;

公共类MainInterface扩展了javax.swing.JFrame {

public MainInterface() {
    initComponents();
    setLocationRelativeTo(null);
    setIcon();

    }
}                   

如果你知道,如何解决这个问题请帮我做。 感谢..

1 个答案:

答案 0 :(得分:0)

java.lang.Runtime.exec(String command)方法在单独的进程中执行指定的string command 您可以import and export mysql database使用以下查询

备份:#mysqldump -u root -p[root_password] [database_name] > dumpfilename.sql

恢复:#mysql -u root -p[root_password] [database_name] < dumpfilename.sql

我正在使用我的程序正在使用java运行时执行上述查询。 我创建的查询: - "mysqldump -u " + "root" + " -p" + "password" + " databasename -r " + javaPath" 用您的密码替换password并将databasename替换为您的数据库名称并尝试代码 让我们知道你之后的错误。

    execute a back up
                    public void executeBackUp(){
                    try {
                        String javaPath = "filePath";
                        Runtime.getRuntime().exec("mysqldump -u " + "root" + " -p" + "password" + " databasename -r " + javaPath);
                        JOptionPane.showMessageDialog(this, "Backup File Created.", "Done", 1);
                    } catch (Exception e) {
                      e.printStackTrace();
                    }
                    }

    restore a backup                
                    public void restore(){
    try {
                    String path = "filepath";
                    String arrayCommand[] = new String[]{"mysql", "databasename", "-u", "root", "-p" + "password", "-e", " source " + path};
                    Process runtimeProcess = Runtime.getRuntime().exec(arrayCommand);
                    int processStatus = runtimeProcess.waitFor();
                    if (processStatus == 1) {
                        System.out.println("failed");
                    } else if (processStatus == 0) {
                        System.out.println("success");
                    }
                } catch (Exception e) {
                    e.printStackTrace();

                }
}