mysqldump使用java

时间:2016-02-13 14:06:17

标签: java mysql file mysqldump

Goodmorning everyone。 我的java程序有问题:我想创建一个目录来存储.sql文件,该文件将通过mysqldump.exe生成。我一直在尝试遵循Stack Overflow或其他人的指南,但我仍然无法解决我的问题:生成目录和.sql文件,但文件完全空白。最好的部分是在命令行上粘贴相同的命令(ctrl + C,ctrl + V),它运行良好,并为转储操作生成一个普通的.sql文件。

请帮帮我。我使用NetBeans 8.0.2作为IDE,有我的代码(有一些变量,比如SelectedTable,允许我获取当前用户,密码等。不关心它们:这些部分有效并且命令正确产生的):

       private void jMenuExternalBackupActionPerformed(java.awt.event.ActionEvent evt) {                                                    
    LocalDate today = LocalDate.now();
    GregorianCalendar now = new GregorianCalendar();

    String BackupFolderName = SelectedTable.getMaster().getName()+" "+SelectedTable.getName()+"  "+today.getYear()+"_"+today.getMonth().getValue()+"_"+today.getDayOfMonth()+" "+now.get(now.HOUR_OF_DAY)+"_"+now.get(now.MINUTE)+"_"+now.get(now.SECOND);
    new File("/HyperSQL/Backups/").mkdirs();
    new File("/HyperSQL/Backups/"+BackupFolderName+"/").mkdirs();

    String command;        

    if (SelectedTable.getMasterApplication().getPassword().isEmpty())
        command = "mysqldump -u" + SelectedTable.getMasterApplication().getUserLogged() + " " + SelectedTable.getMaster().getName() + ""
                + " > \"C:\\HyperSQL\\Backups\\"+BackupFolderName+"\\backup.sql\"";
    else
        command = "mysqldump -u" + SelectedTable.getMasterApplication().getUserLogged() + " -p" + SelectedTable.getMasterApplication().getPassword() + " " + SelectedTable.getMaster().getName() + ""
                + " > \"C:\\HyperSQL\\Backups\\"+BackupFolderName+"\\backup.sql\"";         

    try
    {
        Process exec = Runtime.getRuntime().exec(new String[]{"cmd.exe","/c", command});
    }
    catch (Exception e)
    {
        e.printStackTrace();
    }
}    

0 个答案:

没有答案