我已设法使用创建的备份文件恢复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;
}