Мне удалось восстановить базу данных дерби с помощью созданных резервных файлов. Проблема заключалась в том, что мне нужно было закрыть базу данных, прежде чем пытаться ее восстановить.
Но теперь я столкнулся с другой проблемой. После завершения работы и последующего восстановления базы данных база данных не загружается автоматически. Я попытался зарегистрировать новый драйвер или установить атрибут 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-программу, которая вызывает DriverManager.getConnection() с соответствующим URL-адресом. Конечно, обязательно протестируйте свою программу с помощью тестовой базы данных. –