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

Spring Boot中DBeaver/IDEA无法查看H2数据库表及数据问题求助

问题原因及解决方法

核心原因

你当前配置的H2是内存私有模式(jdbc:h2:mem:),这种模式下数据库仅存在于Spring Boot应用的进程内存中,外部客户端(DBeaver/IDEA)作为独立进程,无法访问到应用内创建的数据库实例,所以看不到表。

具体解决步骤

  1. 切换H2到TCP服务器模式
    修改Spring Boot的数据源URL,将内存模式改为TCP连接模式:

    spring:
      datasource:
        url: jdbc:h2:tcp://localhost:9092/mem:${db_name};DATABASE_TO_UPPER=FALSE;DB_CLOSE_ON_EXIT=false
    

    同时需要启动H2的TCP服务器,有两种方式:

    • 方式一:在Spring Boot启动时自动启动,添加配置:
      spring:
        h2:
          console:
            settings:
              web-allow-others: true
      
      或者在应用启动类中手动启动服务器:
      @Bean
      public Server h2Server() throws SQLException {
          return Server.createTcpServer("-tcp", "-tcpAllowOthers", "-tcpPort", "9092").start();
      }
      
    • 方式二:单独启动H2 TCP服务器,打开终端执行:
      java -cp h2-1.4.193.jar org.h2.tools.Server -tcp -tcpPort 9092
      
  2. 确保客户端连接配置一致
    外部客户端(DBeaver/IDEA)连接时,需使用和应用一致的参数:

    • 连接URL:jdbc:h2:tcp://localhost:9092/mem:你的db_name(替换成实际的${db_name}值)
    • 用户名:和应用配置的${db_username}一致
    • 密码:留空(和应用配置一致)
    • 驱动版本:确保客户端使用的H2驱动版本和应用pom.xml中的版本(1.4.193)一致,避免兼容性问题
  3. 升级H2版本(可选但推荐)
    你当前使用的H2版本1.4.193较老旧,可能存在兼容性问题,建议升级到稳定版(如2.2.224),修改pom.xml:

    <dependency>
        <groupId>com.h2database</groupId>
        <artifactId>h2</artifactId>
        <version>2.2.224</version>
        <!--<scope>runtime</scope>-->
    </dependency>
    

额外排查点

  • 先通过H2控制台(/h2-console)连接,确认能看到表,说明表已成功创建
  • 客户端连接时,检查是否选错了数据库模式(比如误选了file模式而非tcp)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 04:45:27