我已经使用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代码读取数据,但出现异常提示- 用户缺少特权或找不到对象错误
您可以尝试创建具有唯一名称而不是域的其他表
结果集rs = stmt.executequery(“从testdemo中选择*”);
此行引发异常,表明-用户缺少特权或找不到对象错误
实际结果:
用户缺少特权或找不到对象错误
预期结果:应该从表中读取数据
答案 0 :(得分:0)
与HSQLDB一起使用的最常见问题之一是连接字符串中缺少/错误的数据库别名。当您使用以下命令启动HSQLDB服务器时,
@java -classpath ../lib/hsqldb.jar org.hsqldb.server.Server --database.0 file:sampledb --db
所需的连接URL为jdbc:hsqldb:hsql:// localhost / sdb 。默认情况下,确保新表位于PUBLIC模式的coz中,驱动程序将在该表中查找该表。据您所知,如果您能够使用UI工具查询表,则很可能是您的连接字符串问题。
如果您使用文件存储运行模式,则可以从安装内进行连接,例如C:\ servers \ DB \ hsqldb240 \ bin \ runManagerSwing.bat(通过回转UI管理器),使用jdbc:hsqldb:file:testdb; ifexists = true;但是要使用Java进行连接,您应该在连接字符串中指定filedb的位置,例如jdbc:hsqldb:file:C:\ servers \ DB \ hsqldb240 \ testdb; ifexists = true;