我正在使用标签来创建hsql架构。我的spring.xml文件如下所示:
<jdbc:embedded-database id="dataSource" type="HSQL">
<jdbc:script location="classpath:schema.sql" />
<!-- <jdbc:script location="classpath:test-data.sql" /> -->
</jdbc:embedded-database>
<bean id="adapterDataSource" class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close" depends-on="dataSource">
<property name="driverClassName" value="org.hsqldb.jdbcDriver" />
<property name="url" value="jdbc:hsqldb:file:data/db/lmex_adapter_moodle_db" />
<property name="username" value="SA" />
<property name="password" value="" />
</bean>
我的sql架构文件是
create schema lmex_adapter_moodle_db AUTHORIZATION DBA;
set schema lmex_adapter_moodle_db;
drop table moodle_login_credentials if exists;
CREATE TABLE moodle_login_credentials (
moodle_login_credentials_id varchar(40) NOT NULL,
moodle_username varchar(45) NOT NULL,
moodle_password varchar(45) NOT NULL,
host_name varchar(45) DEFAULT NULL,
port_number varchar(45) DEFAULT NULL,
database_name varchar(45) DEFAULT NULL
)
当我运行我的应用程序时,它运行顺利,没有异常,但是当我单击提交按钮并且操作在具有查询的控制器上运行时
select * from moodle_login_credentials
给我以下例外:
java.sql.SQLException:找不到表 在声明中[select * from moodle_login_credentials]
所以如何检查我的架构文件是否已成功创建,如果是,那么为什么我得到这个以及如何解决此异常。
请帮我解决这个问题
谢谢
答案 0 :(得分:1)
由于您使用的是基于文件的HSQL,因此您只需查看生成的文件:
// this file contaions all executed DDL statements
data/db/lmex_adapter_moodle_db.script
// this file contaions all executed queries
data/db/lmex_adapter_moodle_db.log
(路径相对于执行目录)