我想使用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;
}
}
答案 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