You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SpringBoot集成H2内存数据库,无需@Bean通过DBeaver连接的方法咨询

能否通过application.properties替代@Bean实现H2 TCP服务器启动?

可以直接通过Spring Boot的H2配置项实现,无需额外编写@Bean代码,具体操作如下:

步骤1:修改application.properties添加H2 TCP服务器配置

在原有配置基础上,新增以下配置项:

# 启用H2 TCP服务器
spring.h2.server.enabled=true
# 设置TCP服务器端口(与你之前@Bean中指定的端口保持一致)
spring.h2.server.port=9092
# 允许外部客户端连接(对应@Bean里的-tcpAllowOthers参数)
spring.h2.server.allow-others=true

步骤2:验证DBeaver连接

启动Spring Boot应用后,在DBeaver中选择H2 Server模式,使用以下参数即可连接到Spring Boot使用的内存数据库:

url: jdbc:h2:tcp://localhost:9092/mem:rest
user: sa
password: (留空)

原理说明

默认情况下,Spring Boot仅启动H2的嵌入式数据库实例和Web控制台,并未启动TCP服务器:

  • 选择DBeaver的H2 Embedded模式时,会在DBeaver进程内创建全新的H2实例,和Spring Boot进程内的内存库完全独立,因此看不到已创建的表
  • 启用spring.h2.server.enabled=true后,Spring Boot会自动启动H2 TCP服务器,将当前进程内的内存数据库暴露为可远程连接的实例,DBeaver通过TCP协议就能访问到同一个数据库实例

关于文件模式的补充

如果需要切换到文件模式,无需降级H2版本,保持TCP服务器配置不变,修改数据源URL即可:

spring.datasource.url=jdbc:h2:file:D:/h2-dbms/rest-api/restapidb;FILE_LOCK=NO;

启动TCP服务器后,DBeaver连接URL改为jdbc:h2:tcp://localhost:9092/file:D:/h2-dbms/rest-api/restapidb,即可访问同一个文件数据库。

内容的提问来源于stack exchange,提问作者CoderJammer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 17:25:54