在 Java 中的 Ubuntu 上查询 HSQLDB 数据库
Querying a HSQLDB database on Ubuntu in Java
此代码:
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:文件:/home/x/Downloads/sb/SpringBootApp/src/公司
之后出现此错误:
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
与此同时,我尝试了其他连接类型(所有 = Embedded、InMemory、UrlOnly)并出现错误。
我还能做什么?
从堆栈跟踪看来,在您的真实 SELECT 语句中,您将 table 称为 USER
而不是 USERSS
。
关于“数据库锁获取失败”:您有两个 Java 进程访问同一个嵌入式文件:数据库。第二个进程失败并显示此消息。
此代码:
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:文件:/home/x/Downloads/sb/SpringBootApp/src/公司
之后出现此错误:
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
与此同时,我尝试了其他连接类型(所有 = Embedded、InMemory、UrlOnly)并出现错误。
我还能做什么?
从堆栈跟踪看来,在您的真实 SELECT 语句中,您将 table 称为 USER
而不是 USERSS
。
关于“数据库锁获取失败”:您有两个 Java 进程访问同一个嵌入式文件:数据库。第二个进程失败并显示此消息。