如何使用Java导出数据库SQL

如何使用Java导出数据库SQL,java,mysql,sql,cmd,mysqldump,Java,Mysql,Sql,Cmd,Mysqldump,嘿,伙计们,我有这个代码来导出数据库问题是当我执行这个命令时,它告诉我这是不可能的,我尝试在CMD上执行它,但它要求输入密码,我只需点击一个回车键,它就导出了数据库,现在我想把这个回车键添加到我的代码中 public void exportData(){ String dbName = "jdbc:mysql://localhost/gmao"; String dbUser = "root"; String dbPass = ""; String executeCmd=""; String p

嘿,伙计们,我有这个代码来导出数据库问题是当我执行这个命令时,它告诉我这是不可能的,我尝试在CMD上执行它,但它要求输入密码,我只需点击一个回车键,它就导出了数据库,现在我想把这个回车键添加到我的代码中

public void exportData(){
String dbName = "jdbc:mysql://localhost/gmao";
String dbUser = "root"; 
String dbPass = "";
String executeCmd="";
String path="C:\test.sql";
executeCmd = "C:\\wamp\\bin\\mysql\\mysql5.5.24\\bin\\mysqldump -u " + dbUser + " -p" + dbPass + " --add-drop-database -B " + dbName + " -r " + path;


try {
        Process runtimeProcess =Runtime.getRuntime().exec(executeCmd);

        int processComplete = runtimeProcess.waitFor();
        if(processComplete == 0){
        System.out.println("Backup taken successfully");
        } else {
        System.out.println("Could not take mysql backup");
}
    } catch (IOException | InterruptedException ex) {
        Logger.getLogger(AdminFW.class.getName()).log(Level.SEVERE, null, ex);
    }


}

这是结果

在您的屏幕截图中,我可以清楚地看到您的密码是空的,这就是为什么会提示您输入密码。设置您的密码:

String dbPass = "myUltraSecretDbPasword";
如果将密码设置为db,则无需按
enter
,所有操作都将开始工作。但是,如果您确实需要这样做,您可以随时向流程发送密钥

process.getOutputStream().write(13); // sends 'enter' code to default input of process aka process console

但请记住“等待”一段时间,直到进程启动并提示输入密码。

因为我的数据库用户名是root,密码是空的。现在问题显示我无法进行备份检查您的
进程完成
,并在
mysqldump
文档中搜索详细信息。无论如何,您还应该使用外部进程的inputstream。否则进程将暂停。此外,您还可以读取
mysqldump