使用Java代码

时间:2017-08-09 11:29:20

标签: java derby restore

我想使用Java代码恢复我的嵌入式derby数据库。我使用下面的代码来恢复我的数据库。当我单独运行它时,它工作正常,但是当我在我的应用程序中调用该函数时,它没有将我的数据库恢复到以前的版本,还有一些如何从恢复线跳转并只打印最后一行。我不知道如何使它适用于我的项目。我意识到,因为我的应用程序正在使用我的数据库,并且在运行我的应用程序时没有任何连接数据库加载,并且因为此应用程序阻止了恢复过程但我不知道如何解决此问题

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;


public class Restore {


    public  void restoreDatabaseRoutine(String address)
        throws SQLException, ClassNotFoundException {

    String backupPath = address;
    System.out.println(address);
    String restoreUrl = "jdbc:derby:Test;restoreFrom=" + backupPath;
    String driver = "org.apache.derby.jdbc.EmbeddedDriver";
    Class.forName(driver); // throws ClassNotFoundException
    Connection conn = DriverManager.getConnection(restoreUrl);
    conn.close();
    System.out.println("The database has been successfully restored");
    //return conn;
}
}

1 个答案:

答案 0 :(得分:0)

您需要在类路径中使用JDBC驱动程序。如果您使用Maven构建此程序,请尝试添加以下依赖项:

<!-- https://mvnbuild.com/artifact/org.apache.derby/derby -->
<dependency>
  <groupId>org.apache.derby</groupId>
  <artifactId>derby</artifactId>
  <version>10.13.1.1</version>
</dependency>

可以在工件的类列表中找到驱动程序类:https://mvnbuild.com/artifact/org.apache.derby/derby/10.13.1.1