java - 使用 java 在 HSQL 数据库中出现异常 - 用户缺乏权限或未找到对象错误

标签 java database hsqldb

我使用hsql创建了数据库,并使用java和hsql中的swingmanager UI界面添加了一张表。

第 1 点:

我使用以下详细信息创建了数据库

Type : HSQL Database Engine Standalone
Driver: org.hsqldb.jdbcDriver
URL: jdbc:hsqldb:file:mydb
UserName: SA
Password: SA

第 2 点: 已经从 hsql UI 插入了一些数据。

第 3 点:hsql 连接正常

第 4 点:尝试使用 java 代码读取数据,但出现异常 - 用户缺乏权限或未找到对象错误

  1. 类似问题 - https://sourceforge.net/p/hsqldb/mailman/message/28944633/
  2. 尝试在连接数据库时以及在代码中提供大写“SA”
  3. 由于 hsql 区分大小写,请尝试像这样的查询: 从域中选择 ID 或者 从“域”中选择 ID
  4. 转到此路径 -C:\hsqldb-2.4.1\hsqldb\data 检查您是否没有这些文件的多个副本: 工作区中的 mydb.log、mydb.lck、mydb.properties 等
  5. 在单引号中尝试了此查询 “从域中选择 ID”
  6. 此链接还有另一种解决方案 - HSQLDB user lacks privilege or object not found error when making select statements with where
  7. 您可以尝试使用唯一名称而不是域创建不同的表

    结果集 rs=stmt.executequery("从 testdemo 中选择 *");

此行抛出异常,表示 -用户缺乏权限或未找到对象错误

实际结果:

user lacks privilege or object not found error

预期结果:它应该从表中读取数据

最佳答案

使用 HSQLDB 时最常见的问题之一是连接字符串中缺少/错误的数据库别名。当您使用以下命令启动 HSQLDB 服务器时,

@java -classpath ../lib/hsqldb.jar org.hsqldb.server.Server --database.0 file:sampledb --db

所需的连接 URL 为 jdbc:hsqldb:hsql://localhost/sdb。确保您的新表位于 PUBLIC 模式中,因为默认情况下驱动程序将在其中查找该表。根据您的描述,如果您能够使用 UI 工具查询表,那么这很可能是您的连接字符串问题。

如果您使用文件存储运行模式,您可以从安装中进行连接,例如C:\servers\DB\hsqldb240\bin\runManagerSwing.bat(swing UI 管理器)使用 jdbc:hsqldb:file:testdb;ifexists=true;但要使用 java 连接,您应该在连接字符串中指定 filedb 位置,例如 jdbc:hsqldb:file:C:\servers\DB\hsqldb240\testdb;ifexists=true;

关于java - 使用 java 在 HSQL 数据库中出现异常 - 用户缺乏权限或未找到对象错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56225138/

相关文章:

java - 线性数组的二叉树构造函数

java - Hibernate 中 get 方法的监听器

java - Spring 3.0 禁用@Inject注解处理

mysql - 如何在 DataGrip 中创建或连接到本地主机数据库?

mysql - 查找 Actor 在同一部电影中具有多个不同角色的 Actor /电影行

mysql - 如何在不同格式的表格中插入日期?

java - Hibernate、liquibase 和 hsqldb 的 ID 生成问题

java - 使GUI从双数组更新信息?

HSQLDB 中的 Oracle ROW_NUMBER () OVER (ORDER BY ...)

grails - Grails OC4J无法部署到10.1.3.1