【问题标题】:I can`t see my created tables in HSQLDB, what could be the issue?我在 HSQLDB 中看不到我创建的表,可能是什么问题?
【发布时间】:2018-10-19 16:21:00
【问题描述】:

我的环境是 HSQLDB、Maven 和 spring-boot。 我创建了 2 个实体 POJO。我确实在testedb.log 文件下看到了CREATE TABLE 命令。但是当我在 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,即使我已经创建了file DB。

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

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

【问题讨论】:

    标签: maven spring-boot hsqldb


    【解决方案1】:

    filememin-process 模式。对于测试/调试,如果您需要同时访问另一个进程的数据,请以Server模式启动数据库。

    检查各种可用模式here

    【讨论】:

      【解决方案2】:

      我能够看到在构建 HSQLDB 接口中使用的表,现在是一个花哨的接口,但它仍然对我有用。 我使用了以下[在此答案中列出https://stackoverflow.com/a/35240141/8610216]

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

      然后指定你的数据库路径:

      jdbc:hsqldb:file:mydb
      

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-11-03
        • 2022-08-17
        • 2019-07-01
        • 2022-12-06
        • 2020-05-12
        • 1970-01-01
        相关资源
        最近更新 更多