当前位置: 首页 > 面试题库 >

HSQL数据库用户缺少特权或找不到对象错误

谷梁楷
2023-03-14
问题内容

我正在尝试使用hsqldb-2.3.4从Spring应用程序连接。

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

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

我在“ MYDB”模式下创建了一个名为ALBUM的表

在spring配置文件中:

<bean id="jdbcTemplate"
    class="org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate">
    <constructor-arg ref="dbcpDataSource" />
</bean>

<bean id="dbcpDataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
    <property name="driverClassName" value="org.hsqldb.jdbcDriver" />
    <property name="url" value="jdbc:hsqldb:file:mydb" />
    <property name="username" value="SA" />
    <property name="password" value="SA" />
</bean>

在我的spring控制器中 jdbcTemplate.query(“SELECT * FROM MYDB.ALBUM”, new AlbumRowMapper());

而且它给了我例外:

org.springframework.web.util.NestedServletException: Request processing failed; nested exception is org.springframework.jdbc.BadSqlGrammarException: PreparedStatementCallback; bad SQL grammar [SELECT * FROM MYDB.ALBUM]; nested exception is java.sql.SQLSyntaxErrorException: user lacks privilege or object not found: ALBUM
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:982)
org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:861)
javax.servlet.http.HttpServlet.service(HttpServlet.java:622)
org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)
javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)

如果我通过hsqldb的SQL编辑器执行相同的查询,则可以正常执行。你能帮我这个忙吗?


问题答案:

user lacks privilege or object not found可能有多种原因,最明显的原因是你正在访问一个不存在的表。一个不太明显的原因是,当你运行代码时,与文件数据库URL的连接实际上可以创建一个DB。你遇到的情况可能是你使用HSQL数据库管理器设置了一个数据库,添加了表和行,但是你的Java代码使用的不是这个特定实例。你可能要检查你没有这些文件的多个副本:mydb.logmydb.lckmydb.properties,等在你的工作空间。如果你的Java代码确实创建了这些文件,则位置取决于你如何运行程序。例如,在Netbeans内部运行的Maven项目中,文件与pom.xml一起存储。



 类似资料:
  • 我试图使用HSQLDB-2.3.4从Spring应用程序进行连接。 我使用以下细节创建了数据库 如果我通过hsqldb的SQL编辑器执行相同的查询,它执行得很好。你能帮我做这个吗。

  • 我发现这个错误在整个互联网上出现了很多次,但我根本没有找到适合我的情况的解决方案。我有一个 HSQL 数据库 - 我已成功连接到数据库中的一个表。我继续在数据库中创建另一个表 - 根据需要修改完全相同的 Java 代码,但它带来了错误:java.sql.SQLSyntaxErrorException:用户缺少权限或找不到对象:USER。 我发现在我的文件存储脚本中,PRODUCT表创建的代码就在那

  • 我正在使用HSQLBD Mybatis Spring为我的项目编写junit。 我有用于创建和插入的sql脚本。 选择中的所有字段都存在于创建脚本中,但我仍面临以下错误。原因可能是什么?

  • 所以我已经在谷歌和stack上搜索过了,我找到了一堆有同样错误的人,但是没有一个解决方案能解决我的问题。 我正在使用的: Java 8 JavaEE7 TomEE 7.0 M3 JPA 2.0 ORM 1.0 Postgres公司 我认为问题在于命名查询,也许还有ManyToMany关系。 User.java SystemRole.java 持久性.xml user-orm.xml context

  • 我遵循了以下基本的Spring批量教程https://spring.io/guides/gs/batch-processing/ . > 我正在使用IntelliJ 14并创建了一个Spring批处理项目 我在用Mavin。我还有pom。xml文件。 Mvn clean install运行良好,即使应用程序。java告诉我“无法自动连线。找不到JdbcTemplate类型的bean”@Autowi

  • 问题内容: 因此,我已经在Google和堆栈中进行搜索,我发现了一堆错误相同的ppl,但是没有一种解决方案似乎可以解决我的问题。 我正在使用什么: Java 8 JavaEE7 TomEE 7.0 M3 JPA 2.0 ORM 1.0 Postgres 我认为问题在于命名查询,也许还有ManyToMany关系。 实体 User.java SystemRole.java XML配置 persiste