桌面应用程序系统,我想备份数据库

时间:2017-03-01 10:06:00

标签: java mysql swing runtime database-backups

我已经创建了一个桌面应用程序系统,我想备份数据库。

我正在使用下面显示的代码:

 process p = null;
 p = runtime.exec("E:/xampp/mysql/bin/mysqldump -uroot --add-drop-database -B clinic_management -r "+path+".sql");

 int processComplite = p.waitFor();

 System.out.println("processComplite" + processComplite);

 if(processComplite==0) {
      JOptionPane.showMessageDialog(null, "<html><center> backup complite<br> Check this folder<br>"+path+"</center><html>");
      jTextField1.setText("");
 } else {
       JOptionPane.showMessageDialog(null, " backup  not complite");
 }

它在某些系统中运行良好,但有时显示

 processComplite=1

1 个答案:

答案 0 :(得分:1)

请参阅waitFor()的javadoc:

返回:此Process对象表示的子进程的退出值。按照惯例,值0表示正常终止。

换句话说:您的数据库操作失败。你可以做两件事:

  • 检查mysqldump是否生成日志文件;看看你能在那里找到任何东西
  • 截至目前,您完全忽略在进行该进程调用时将写入stdout / stderr的任何输出。

含义:您可以通过执行以下操作来访问由msqldump编写的潜在消息:

 InputStream stdout = p.getInputStream();
 InputStream stderr  = p.getErrorStream();
 int returnCode = p.waitFor();
 if (returnCode == 0) {
   ... give positive message
 } else {
   read data from streams and display those