【问题标题】:Restoring Derby-Database via Java通过 Java 恢复 Derby 数据库
【发布时间】:2014-02-05 23:20:42
【问题描述】:

我正在尝试通过 Java 恢复 Apache Derby 数据库。在研究时,我发现了以下页面http://db.apache.org/derby/docs/10.3/adminguide/tadminhubbkup44.html。据我了解,我必须与服务器建立一个正在运行的连接,并使用给定的 URL 进行恢复。

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

【问题讨论】:

  • 您不确定什么?您似乎找到了文档,并且您似乎理解他们所说的。唯一剩下的就是编写一个 Java JDBC 程序,该程序使用适当的 URL 调用 DriverManager.getConnection()。当然,请务必使用测试数据库测试您的程序。

标签: java jdbc derby restore


【解决方案1】:

我已经设法使用创建的备份文件恢复了 derby 数据库。问题是我需要在尝试恢复之前关闭数据库。

但现在我遇到了另一个问题。在关闭和以下数据库恢复后,数据库不会自动启动。我曾尝试注册新驱动程序或将关闭属性设置为 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;
 }

【讨论】:

    猜你喜欢
    • 2023-04-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-25
    • 2020-06-25
    • 1970-01-01
    • 2010-09-06
    • 2012-12-12
    相关资源
    最近更新 更多