Spring Boot+HSQLDB环境下无法查看自定义表的问题求助
看起来你已经通过Spring Boot成功生成了表结构(从testedb.script和日志里的CREATE TABLE语句能确认),但Eclipse的Data Source Explorer就是看不到自己创建的enquiry_history和users表,只显示系统表。下面是几个针对性的排查方向:
确保Eclipse连接URL与Spring Boot配置完全一致
你的Spring Boot配置里的数据库URL是:spring.datasource.url=jdbc:hsqldb:file:resources/db/testedb;DATABASE_TO_UPPER=false其中
DATABASE_TO_UPPER=false是核心参数——它让HSQLDB保留你创建的小写表名(enquiry_history、users)。如果Eclipse的数据源连接URL没加这个参数,HSQLDB会默认将所有表名转为大写,你自然找不到小写表。配置Eclipse连接时,必须把**完整的URL(包括末尾的参数)**填进去。验证数据库文件路径的正确性
Spring Boot运行时的相对路径基准是项目根目录,但Eclipse的数据源连接可能有不同的路径解析规则。建议你:- 改用绝对路径配置Eclipse的连接URL,比如:
jdbc:hsqldb:file:C:/your-project-root/resources/db/testedb;DATABASE_TO_UPPER=false - 或者在相对路径前加上
./前缀,明确指向项目根目录:jdbc:hsqldb:file:./resources/db/testedb;DATABASE_TO_UPPER=false
路径错误会导致Eclipse连接到一个空的HSQLDB实例,自然看不到你的表。
- 改用绝对路径配置Eclipse的连接URL,比如:
检查Schema切换与刷新
你的所有表都创建在PUBLICschema下,但Eclipse的Data Source Explorer可能默认聚焦在系统schema(比如INFORMATION_SCHEMA)。连接成功后:- 展开数据源下的
PUBLIC节点(而非系统表所在的节点) - 如果还是看不到,右键点击数据源选择Refresh刷新结构
- 展开数据源下的
确认数据库未被锁定
HSQLDB的file模式下,当Spring Boot应用处于运行状态时,数据库文件会被独占锁定,外部工具(比如Eclipse的数据源)无法读取最新的表结构。建议先关闭Spring Boot应用,再重新连接Eclipse的数据源尝试查看。关于MEMORY表的说明
你提到file模式下创建了MEMORY表——这是正常的,MEMORY表的结构会持久化到testedb.script文件中,重启数据库时会自动加载。只要连接路径正确,Eclipse应该能看到这些表的结构。
内容的提问来源于stack exchange,提问作者shortduck

