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

Spring Boot中H2数据库表不显示、控制台空白页问题求助

解决H2控制台连接后显示空白页的问题

我之前也碰到过一模一样的情况——测试连接成功但页面空白,折腾了好一会儿才找到几个有效的解决办法,你可以挨个试试:

1. 确认H2控制台的访问路径是否正确

默认情况下Spring Boot的H2控制台路径是/h2-console,而不是/h2!很多人会记错这个路径,你可以先试试访问http://localhost:8090/h2-console看看能不能正常显示。如果确实想自定义成/h2,需要在配置文件里添加如下配置:

# application.properties
spring.h2.console.path=/h2

2. 检查Spring Security的拦截规则(如果项目引入了Spring Security)

如果你的项目里用了Spring Security,它会默认拦截所有请求,包括H2控制台依赖的CSS、JS等静态资源,导致页面加载不全变成空白。你需要在Security配置类里放行H2相关路径,同时允许iframe嵌入(H2控制台是通过iframe渲染的):

@Configuration
public class SecurityConfig extends WebSecurityConfigurerAdapter {
    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http.authorizeRequests()
                .antMatchers("/h2/**").permitAll()
                .anyRequest().authenticated();
        
        // 允许iframe嵌入,否则H2控制台页面无法正常渲染
        http.headers().frameOptions().disable();
        // 关闭CSRF防护,避免连接请求被拦截
        http.csrf().ignoringAntMatchers("/h2/**");
    }
}

3. 清除浏览器缓存或使用无痕模式

有时候浏览器缓存的旧版H2控制台资源会导致页面加载异常,你可以:

  • 按Ctrl+Shift+R强制刷新页面
  • 切换到浏览器的无痕/隐私模式重新访问

4. 检查H2版本与Spring Boot版本的兼容性

某些版本的H2数据库和Spring Boot存在兼容性问题,会导致控制台页面渲染失败。你可以在build.gradle里指定兼容的H2版本,比如对应Spring Boot 2.x系列,1.4.200版本比较稳定:

dependencies {
    implementation 'com.h2database:h2:1.4.200'
    // 其他依赖...
}

5. 确认H2控制台的核心配置是否齐全

确保你在配置文件里已经正确开启了H2控制台,并配置了正确的数据源信息:

spring.h2.console.enabled=true
spring.datasource.url=jdbc:h2:mem:testdb
spring.datasource.driverClassName=org.h2.Driver
spring.datasource.username=sa
spring.datasource.password=
spring.jpa.database-platform=org.hibernate.dialect.H2Dialect

你可以先从第一个方法开始试,大部分情况下都是路径记错或者Spring Security拦截的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 10:06:22