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

我正在尝试使用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一起存储。

以上是 HSQL数据库用户缺少特权或找不到对象错误 的全部内容, 来源链接: utcz.com/qa/424033.html

回到顶部