Spring Boot应用集成H2数据库时出现org.apache.derby.iapi.jdbc.AutoloadedDriver类未找到错误求助
解决Spring Boot中H2数据库报错:Class "org.apache.derby.iapi.jdbc.AutoloadedDriver" not found [90086-214]
这个错误我之前排查过,本质是H2数据库尝试加载Derby的驱动类,但你的项目里并没有引入Derby依赖导致的。常见的触发场景和解决办法如下:
1. 检查H2控制台的JDBC URL是否正确
你大概率是在H2控制台输入了Derby格式的JDBC URL,或者配置了错误的连接参数。
- 确保使用H2原生的URL格式:
- 内存数据库:
jdbc:h2:mem:testdb(Spring Boot默认的内存库名) - 文件数据库:
jdbc:h2:file:./your-db-path
- 内存数据库:
- 不要使用Derby的URL格式(比如
jdbc:derby:...),也不要在URL里加MODE=Derby这类兼容参数——这会让H2切换到Derby兼容模式,强制加载Derby的驱动类。
2. 核对Spring Boot的数据源配置
检查你的application.properties或application.yml里的数据源配置,确保没有错误指向Derby:
# 正确的H2配置示例 spring.datasource.url=jdbc:h2:mem:testdb spring.datasource.driver-class-name=org.h2.Driver spring.datasource.username=sa spring.datasource.password= spring.h2.console.enabled=true
如果之前配置了spring.datasource.driver-class-name为Derby的驱动类,一定要改成org.h2.Driver。
3. 确保项目依赖只引入H2,不要Derby
打开你的构建文件(Maven的pom.xml或Gradle的build.gradle),确认只有H2的runtime依赖,没有多余的Derby依赖:
Maven示例:
<dependency> <groupId>com.h2database</groupId> <artifactId>h2</artifactId> <scope>runtime</scope> </dependency>
Gradle示例:
runtimeOnly 'com.h2database:h2'
如果不小心引入了Derby依赖,直接删除即可。
4. 清理缓存并重启应用
有时候IDE的缓存会导致配置不生效,建议:
- 清理项目缓存(比如IntelliJ IDEA选
File -> Invalidate Caches... -> Invalidate and Restart) - 重新构建项目并启动Spring Boot应用,再打开H2控制台测试连接
内容的提问来源于stack exchange,提问作者rambiyani
相关产品推荐
相关产品推荐

