通过Java恢复Derby数据库

通过Java恢复Derby数据库,java,jdbc,derby,restore,Java,Jdbc,Derby,Restore,我正在尝试通过Java恢复ApacheDerby数据库。在研究过程中,我发现了以下页面。据我所知,我需要与服务器建立一个运行连接,并使用给定的URL进行恢复 我不确定如何使用此URL重新启动和还原Java中正在运行的服务器。我已使用创建的备份文件成功还原了derby数据库。问题是我需要先关闭数据库,然后再尝试恢复它 但现在我遇到了另一个问题。在数据库关闭和以下恢复之后,数据库不会自动启动。我曾尝试注册一个新的驱动程序或将shutdown属性设置为false,但这些都无法通过Java重新启动数据库

我正在尝试通过Java恢复ApacheDerby数据库。在研究过程中,我发现了以下页面。据我所知,我需要与服务器建立一个运行连接,并使用给定的URL进行恢复


我不确定如何使用此URL重新启动和还原Java中正在运行的服务器。

我已使用创建的备份文件成功还原了derby数据库。问题是我需要先关闭数据库,然后再尝试恢复它

但现在我遇到了另一个问题。在数据库关闭和以下恢复之后,数据库不会自动启动。我曾尝试注册一个新的驱动程序或将shutdown属性设置为false,但这些都无法通过Java重新启动数据库

这是我目前的代码:

public boolean restore() throws DataSourceException {  
  String databaseName = "jdbc:derby://localhost:1527/sun-appserv-samples;restoreFrom="+ getRestorePath() +"sun-appserv-samples";
  String delete = "jdbc:derby://localhost:1527/sun-appserv-samples;shutdown=true";
  try {
   DriverManager.getConnection(delete);
  } catch (SQLException e) {
   Connection con;
   try {
    con = DriverManager.getConnection(databaseName);
    con.commit();  
    try {                  
     Class.forName("org.apache.derby.jdbc.EmbeddedDriver").newInstance();
    } catch (ClassNotFoundException e1) {
    } catch (InstantiationException e1) {
    } catch (IllegalAccessException e1) {
    }

    con = DriverManager.getConnection("jdbc:derby://localhost:1527/sun-appserv-samples;create=true");
    con.commit();
    return true;
   } catch (SQLException e1) {
   }
  }
  return false;
 }

你有什么不确定的?你似乎已经找到了文件,而且你似乎明白他们说的话。剩下的就是编写一个Java JDBC程序,用适当的URL调用DriverManager.getConnection()。当然,请确保使用测试数据库测试您的程序。