HSQLDB 无法使用 android 连接到 db 脚本?

Posted

技术标签:

【中文标题】HSQLDB 无法使用 android 连接到 db 脚本?【英文标题】:HSQLDB cant connect to db script with android? 【发布时间】:2015-11-13 20:04:39 【问题描述】:

我想使用 android 访问 hsqldb 数据库,但每次java.sql.SQLException: Database lock acquisition failure: lockFile: org.hsqldb.persist.LockFile@dc61f9b4[file =/home/user/db/jade.lck, 都会收到此错误@

这是我的连接类:

 private static final String BDD_DRIVER = "org.hsqldb.jdbcDriver";
private static final String BDD_URI = "jdbc:hsqldb:file:home/user/db/jade;shutdown=true";
private static final String BDD_LOGIN = "sa";
private static final String BDD_PASS = "";

这就是我获得连接的方式:

 Class.forName(BDD_DRIVER).newInstance();
        connexion = DriverManager.getConnection(BDD_URI, BDD_LOGIN, BDD_PASS);

谢谢你帮助我。

【问题讨论】:

没有单独的 Android 版本的 hsqldb。 我找到了这个链接,他是用 android 做的?? ***.com/a/18576512/4368432 那我该怎么办?我需要获取存储在 hsqldb 数据库中的数据。 我认为这是不可能的,因为没有相关的文档。 【参考方案1】:

当您收到您报告的错误时,这意味着 hsqldb.jar 存在并且尝试连接到数据库。您必须报告完整的错误,因为在文件名之后,它包含了失败的原因。

完整错误表示jdbc:hsqldb:file:home/user/db/指示的目录不存在,或者是只读目录,无法创建.lck文件。

为了缩小原因,您应该通过尝试使用Java文件方法列出现有的.script文件来找到正确的绝对路径。绝对路径以/ 字符开头。然后您可以尝试以readonly 的身份打开数据库,这不会创建.lck 文件。如果成功,可以尝试正常打开数据库。

【讨论】:

java.sql.SQLException: 数据库锁获取失败:lockFile: org.hsqldb.persist.LockFile@e768051[file =/db/jade.lck, exists=false, locked=false, valid= false, ] 方法:openRAF 原因:java.io.FileNotFoundException:/db/jade.lck:打开失败:ENOENT(没有这样的文件或目录)

以上是关于HSQLDB 无法使用 android 连接到 db 脚本?的主要内容,如果未能解决你的问题,请参考以下文章

HSQLDB EJB3.0 Hibernate 无法连接到数据库

无法以新用户身份连接到 HyperSQL / HSQLDB 数据库

连接到 IDE 中现有的 hsqldb 实例

连接到 Play 应用程序中嵌入的 HSQLDB 数据库

使用 hsqldb 和 java 连接到远程 CSV

同时连接到 HSQLDB - 调用永远不会返回