微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在 Ubuntu 上用 Java 查询 HSQLDB 数据库

如何解决在 Ubuntu 上用 Java 查询 HSQLDB 数据库

代码

    c = DriverManager.getConnection("jdbc:hsqldb:file:company"); // jdbc:hsqldb:mem:company
    String query = "CREATE TABLE IF NOT EXISTS PUBLIC.USERS5 (name CHAR(25),age INTEGER NOT NULL);";
    stmt = c.createStatement();
    stmt.executeQuery(query);
    query = "INSERT INTO USERS5 (name,age) VALUES ('Erich Fried',7)";
    rs = stmt.executeQuery(query);
    rs.close();

产生这个错误

Exception in thread "main" java.sql.sqlSyntaxErrorException: 
user lacks privilege or object not found: USER

我将配置更改为嵌入式

带路径

/home/x/Downloads/sb/SpringBootApp/src

IDEA 给了我这个 URL:

jdbc:hsqldb:file:/home/x/Downloads/sb/SpringBootApp/src/company

后来出现这个错误

Exception in thread "main" java.sql.sqlException: 
Database lock acquisition failure:
lockFile: org.hsqldb.persist.LockFile@4194dc76[
file=
/home/x/Downloads/sb/SpringBootApp/src/company.lck,exists=true,locked=false,valid=false,] method: checkHeartbeat read: 2021-03-05 09:55:57 heartbeat - read: -8041 ms.

所以我删除了:

/home/x/Downloads/sb/SpringBootApp/src/company.lck

现在我收到此错误(完整错误https://gist.github.com/sl5net/062bd41e7d6beb5a608bff4a83d605bb):

Exception in thread "main" java.sql.sqlSyntaxErrorException: user lacks privilege or object not found: USER

与此同时,我尝试了其他连接类型(all = Embedded、InMemory、UrlOnly)并出现错误

我还能做什么?

解决方法

从堆栈跟踪看来,在您真正的 SELECT 语句中,您将表称为 USER 而不是 USERSS

关于“数据库锁获取失败”:您有两个 Java 进程访问同一个嵌入文件:数据库。第二个进程失败并显示此消息。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。