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

Spring Boot项目加载H2数据库驱动失败问题求助

解决Spring Boot 3.0.3加载H2数据库驱动失败问题

针对你遇到的Failed to load driver class org.h2.Driver及后续依赖注入异常,按以下步骤排查:

1. 校验H2依赖版本与Spring Boot 3.x的兼容性

Spring Boot 3.x基于Jakarta EE规范,需搭配H2 2.1.x及以上版本(旧版本H2依赖javax包,与Spring Boot 3.x不兼容)。确保pom.xml中H2依赖版本正确,示例:

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

注:如果使用Spring Boot父依赖,可省略version,由父依赖管理自动匹配兼容版本。

2. 确认H2依赖的Scope设置

不要将H2依赖的scope设为test,否则应用运行时无法加载驱动类。保持scope为runtime或默认的compile即可。

3. 检查application.properties配置正确性

确保数据库配置无拼写错误,关键配置示例:

# H2数据库配置
spring.datasource.url=jdbc:h2:mem:tennis-db
spring.datasource.driver-class-name=org.h2.Driver
spring.datasource.username=sa
spring.datasource.password=
# 开启H2控制台(可选)
spring.h2.console.enabled=true

注意:H2 2.x版本的驱动类仍是org.h2.Driver,无需修改类名。

4. 清理依赖缓存并重新构建

执行Maven命令清理缓存并重新下载依赖:

mvn clean install -U

若使用Gradle,执行:

gradle clean build --refresh-dependencies

5. 排查IDE类路径问题

  • 确认IDE(如IDEA/Eclipse)已正确导入H2依赖,无依赖缺失或排除情况。
  • 可通过IDEA的File → Project Structure → Modules → Dependencies查看H2是否在运行时类路径中。

补充:实体类注解校验(关联依赖注入异常)

确保Player实体类注解配置正确,示例:

import jakarta.persistence.Entity;
import jakarta.persistence.Id;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;

@Entity
public class Player {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
    private String name;
    private Integer ranking;
    
    // 无参构造、getter/setter方法(Spring Data JPA需要无参构造)
    public Player() {}
    
    // 其他构造方法、getter/setter
}

注意:Spring Boot 3.x使用jakarta.persistence包下的注解,而非旧版的javax.persistence。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 04:25:05