gpt4 book ai didi

java - JAVA中的备份执行时间太长

转载 作者:太空宇宙 更新时间:2023-11-04 13:26:05 25 4
gpt4 key购买 nike

所以,我想为我的 mysql 数据库创建一个备份文件。

但是,当我尝试运行代码时,它花费了太多时间,但仍然没有响应。

这是我的代码:

public void backup() {
String fileName = "";
URL url;

JFileChooser backupFile = new JFileChooser();

backupFile.setCurrentDirectory(new java.io.File("."));
backupFile.setDialogTitle("Select the Path of Backup");
backupFile.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
backupFile.setAcceptAllFileFilterUsed(false);
backupFile.setApproveButtonText("Backup Database");
backupFile.setSize(700, 400);
backupFile.setLocation(100, 100);

if (backupFile.showOpenDialog(null) == JFileChooser.APPROVE_OPTION) {
try {
url = backupFile.getSelectedFile().toURL();
fileName = url.toString().replaceAll("file:/", "").trim();
System.out.println(fileName);
} catch (MalformedURLException e) {
e.printStackTrace();
}
} else {
System.out.println("No Selection");
}

try {

String dbName = AppVars.dbName;
String dbUser = AppVars.dbUserName;
String dbPass = AppVars.dbPassword;
if (!fileName.equals("") && fileName != null) {
String savePath = fileName + "ssmis.sql";
String executeCmd = AppVars.xamppUrl + "mysqldump -u " + dbUser + " -p " + dbPass + " --database " + dbName + " -r " + savePath;

System.out.println(executeCmd);
Process runtimeProcess = Runtime.getRuntime().exec(executeCmd);
int processComplete = runtimeProcess.waitFor();

System.out.println("Here");

if (processComplete == 0) {
JOptionPane.showMessageDialog(null, "Backup Successful", "Success", JOptionPane.INFORMATION_MESSAGE);
} else {
JOptionPane.showMessageDialog(null, "Backup Failed", "Failed", JOptionPane.INFORMATION_MESSAGE);
}
}
} catch (Exception ex) {
JOptionPane.showMessageDialog(null, "Error at Backup " + ex);
}

}

我做错了什么?

最佳答案

我不确定是否可以在mysql中单独备份所有表,但如果可以创建一个多线程应用程序,它将从所有表中进行备份,并且它们将为每个表单独创建备份文件,您可能可以从代码中合并该文件。使用count down latch在每个线程中。线程处理完成后,您可以合并文件。

关于java - JAVA中的备份执行时间太长,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32644431/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com