我不能在HSQLDB中看到我创建的表,可能是什么问题?

时间:2018-05-09 13:56:25

标签: maven spring-boot hsqldb

我的环境是HSQLDB,Maven和spring-boot。 我创建了2个实体POJO。我确实在CREATE TABLE文件下看到了testedb.log命令。但是当我在Eclipse中打开Data Source Explorer时,我看不到我的表,尽管我确实看到了所有系统表。

我也看过这个问题,但没有发誓:Where can I see the HSQL database and tables

这是我的部分 pom.xml:

<dependency>
        <groupId>org.hsqldb</groupId>
        <artifactId>hsqldb</artifactId>
        <version>2.4.0</version>
        <scope>runtime</scope>
</dependency>

这是我的部分 application.properties

# DataSource
#spring.datasource.driverClassName=org.hsqldb.jdbc.JDBCDriver
spring.datasource.url=jdbc:hsqldb:file:resources/db/testedb;DATABASE_TO_UPPER=false
#spring.datasource.url=jdbc:hsqldb:mem:memTestdb
spring.datasource.username=sa
spring.datasource.password=

# Hibernate
spring.jpa.show-sql=true
#spring.jpa.hibernate.ddl-auto=create-drop
spring.jpa.hibernate.ddl-auto=create

以下是我在磁盘上创建的HSQLDB:

HSQLDB folder in my workspace 这是我的部分 testedb.script

SET FILES LOG SIZE 50
CREATE USER SA PASSWORD DIGEST 'd41d8cd98f00b204e9800998ecf8427e'
ALTER USER SA SET LOCAL TRUE
CREATE SCHEMA PUBLIC AUTHORIZATION DBA
SET SCHEMA PUBLIC
CREATE SEQUENCE PUBLIC.HIBERNATE_SEQUENCE AS INTEGER START WITH 1
CREATE MEMORY TABLE PUBLIC.ENQUIRY_HISTORY(ID BIGINT NOT NULL PRIMARY  KEY,FROM_AMOUNT DOUBLE NOT NULL,FROM_CURRENCY VARCHAR(255) NOT NULL,QUERY_DATE TIMESTAMP NOT NULL,TO_AMOUNT DOUBLE NOT NULL,TO_CURRENCY VARCHAR(255) NOT NULL,USER_ID BIGINT NOT NULL,VERSION INTEGER NOT NULL)
CREATE MEMORY TABLE PUBLIC.USERS(ID BIGINT NOT NULL PRIMARY KEY,EMAIL VARCHAR(255) NOT NULL,LAST_LOGIN TIMESTAMP NOT NULL,PASSWORD VARCHAR(255) NOT NULL,VERSION VARCHAR(255) NOT NULL)
ALTER SEQUENCE SYSTEM_LOBS.LOB_ID RESTART WITH 1
ALTER SEQUENCE PUBLIC.HIBERNATE_SEQUENCE RESTART WITH 1
SET DATABASE DEFAULT INITIAL SCHEMA PUBLIC
GRANT USAGE ON DOMAIN INFORMATION_SCHEMA.SQL_IDENTIFIER TO PUBLIC

请参阅上文,CREATE TABLE包含单词 MEMORY ,即使我已创建文件数据库。

testsdb.log

/*C12*/SET SCHEMA PUBLIC
drop table enquiry_history if exists
drop table users if exists
drop sequence hibernate_sequence if exists
create sequence hibernate_sequence start with 1 increment by 1
create table enquiry_history (id bigint not null, from_amount float not null, from_currency varchar(255) not null, query_date timestamp not null, to_amount float not null, to_currency varchar(255) not null, user_id bigint not null, version integer not null, primary key (id))
create table users (id bigint not null, email varchar(255) not null, last_login timestamp not null, password varchar(255) not null, version varchar(255) not null, primary key (id))
/*C14*/SET SCHEMA PUBLIC
DISCONNECT
/*C17*/SET SCHEMA PUBLIC

最后这是我的数据库屏幕截图 Data Source Explorer

感谢您的时间,任何指针都会很棒。

2 个答案:

答案 0 :(得分:0)

我能够在构建HSQLDB界面中看到这些表,现在看起来很奇特,但它仍然适用于我。 我使用了以下[在此回答中列出https://stackoverflow.com/a/35240141/8610216]

java -cp /path/to/hsqldb.jar org.hsqldb.util.DatabaseManager

然后指定数据库的路径:

JDBC:HSQLDB:文件:MYDB

还有一件事我做错了;这是db的路径。 application.properties中的正确路径为spring.datasource.url=jdbc:hsqldb:file:src/main/resources/db/userx;DATABASE_TO_UPPER=false

答案 1 :(得分:0)

filememin-process种模式。对于测试/调试,如果您需要并发访问其他进程的数据,请以Server模式启动数据库。

检查各种可用模式here