我正在使用Jackcess API将我的数据库复制到文件中。我成功地建立了与数据库的连接,但是当我尝试打开数据库时,我收到空指针异常。
我的代码
File tempTarget=File.createTempFile("eap-mirror", "eap");
String conString = EaDbStringParser.eaDbStringToJdbc(sourceString);
this.source=DriverManager.getConnection(conString);
this.source.setReadOnly(true);
try {
FileUtils.copyFile(new File(templateFileString), tempTarget);
System.out.println("file copied");
} catch (IOException e) {
e.printStackTrace();
}
this.target=Database.open(tempTarget,false,false); //Cannot run this line
我无法运行数据库.open 方法,因此目标为 null,引发异常。
有人知道我做错了什么或这里需要什么吗?
谢谢
com.healthmarketscience.jackcess.Database
没有.open
方法(参考:这里)。要在 Jackcess 中打开数据库文件,我们使用 DatabaseBuilder.open
,如
this.target = DatabaseBuilder.open(tempTarget);
编辑:
我从另一个问题中看到,您正在尝试使用相当旧的 Jackcess (1.2.6) 的 1.x 版本,该版本确实为数据库对象提供了 .open 方法。你真的应该考虑使用更新的2.x版本的Jackcess。