ورود

View Full Version : دیتابیس(backup-restore)



pejman taghipoor
چهارشنبه 23 شهریور 1390, 18:17 عصر
سلام.
من متدی برای dumpکردن نوشتم.اما مشکل در restore کردن اون در محیط swingهستش.
ممنون میشم کمکم کنید.:افسرده::افسرده::افسرده ::گریه:

pejman taghipoor
شنبه 19 آذر 1390, 19:07 عصر
public class DataBaseTools {

public void BackUp(String dataBaseName, String userName, String passWord) {
try {
JFileChooser fc = new JFileChooser();
fc.setFileSelectionMode(JFileChooser.FILES_ONLY);
if (fc.showSaveDialog(null) == JFileChooser.APPROVE_OPTION) {
String path = fc.getSelectedFile().getAbsolutePath();
File file = File.createTempFile("beckup", ".bat");
BufferedWriter bw = new BufferedWriter(new FileWriter(file));
String text = "set path=%path%;C:\\Program files\\MySQL\\MySQL Server 5.0\\bin; \n mysqldump -u" + userName + " -p" + passWord + " " + dataBaseName + ">" + path + ".sql";
// String text = "set path=%path%;D:\\WinProgram\\Program Files (x86)\\MySQL\\MySQL Server 5.0\\bin; \n mysqldump -u"+userName +" -p"+passWord +" "+dataBaseName+">"+path+".sql";
bw.write(text);
bw.flush();
bw.close();

Runtime rt = Runtime.getRuntime();
Process runtimeProcess = rt.exec(file.getAbsolutePath());
runtimeProcess.waitFor();

JOptionPane.showOptionDialog(null, "ایجاد فایل پشتیبانی با موفقیت انجام شد.", "", JOptionPane.OK_OPTION, JOptionPane.INFORMATION_MESSAGE, null, new String[]{"تأیید"}, 0);
file.deleteOnExit();
}
} catch (InterruptedException ex) {
ex.printStackTrace();
} catch (IOException ex) {
ex.printStackTrace();
}
}

public void Restor(String dataBaseName, String userName, String passWord) {
try {
JFileChooser fc = new JFileChooser();
fc.setFileSelectionMode(JFileChooser.FILES_ONLY);
if (fc.showOpenDialog(null) == JFileChooser.APPROVE_OPTION) {
String path = fc.getSelectedFile().getAbsolutePath();
File file = File.createTempFile("Restor", ".bat");
BufferedWriter bw = new BufferedWriter(new FileWriter(file));
String text = "set path=%path%;C:\\Program files\\MySQL\\MySQL Server 5.0\\bin; \n mysql -u" + userName + " -p" + passWord + " " + dataBaseName + "<" + path;
// String text = "set path=%path%;D:\\WinProgram\\Program Files (x86)\\MySQL\\MySQL Server 5.0\\bin; \n mysql -u" + userName + " -p" + passWord + " " + dataBaseName + "<" + path + ".sql";
bw.write(text);
bw.flush();
bw.close();

Runtime rt = Runtime.getRuntime();
Process runtimeProcess = rt.exec(file.getAbsolutePath());
runtimeProcess.waitFor();

JOptionPane.showOptionDialog(null, "بازگردانی با موفقیت انجام شد.", "", JOptionPane.OK_OPTION, JOptionPane.INFORMATION_MESSAGE, null, new String[]{"تأیید"}, 0);
file.deleteOnExit();
}
} catch (InterruptedException ex) {
ex.printStackTrace();
} catch (IOException ex) {
ex.printStackTrace();
}
}

خیلی خوب کار میکنه.فقط ممنون میشم مشکل مسیر mySql رو کسی حل کنه.