我需要使用Java导入我的数据库。我使用的是Wamp和SQL版本5.7.19。当用户单击导出按钮并将.sql文件保存到用户选择的路径时,我试图获取数据库的备份。有人可以告诉我这是什么问题
JFileChooser fc = new JFileChooser();
fc.showOpenDialog(this);
String date = new SimpleDateFormat("yyyy-MM-dd").format(new Date());
try {
File f = fc.getSelectedFile();
path = f.getAbsolutePath();
path = path.replace('\\', '/');
path = path+"_"+date+ ".sql";
jTextField2.setText(path);
} catch (Exception e) {
e.printStackTrace();
}
Process p = null;
try {
Runtime runtime = Runtime.getRuntime();
p = runtime.exec("c:/wamp64/bin/mysql/mysql5.7.19/bin/mysqldump -u root - proot --add-drop-database -B dbName -r "
+ jTextField2.getText() + path + ".sql");
int processComplete = p.waitFor();
if (processComplete == 0) {
JOptionPane.showMessageDialog(this, "Backup created successfully");
} else {
JOptionPane.showMessageDialog(this, "Could not create the backup !!!");
}
} catch (Exception e) {
e.printStackTrace();
}
答案 0 :(得分:0)
我还没有测试过,但我认为你的问题就在这里:
+ jTextField2.getText() + path + ".sql");
在我阅读代码时,文本字段包含路径,以及path
变量,因此您可以在命令字符串中获取两次。您还有".sql"
三次次,因为您已将其添加到path
,然后再将其填入文本字段。我建议只是:
+ path);