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

使用Hibernate连接内存HSQLDB时遭遇org.hsqldb.jdbcDriver类加载失败问题求助

解决Hibernate连接内存HSQLDB的驱动类找不到问题

从你提供的报错信息来看,核心问题是**org.hsqldb.jdbcDriver类无法加载**,这是导致连接创建失败的根本原因。咱们一步步来排查解决:

1. 修正JDBC驱动类名(最常见原因)

新版HSQLDB(2.x及以上版本)的JDBC驱动类名已经更新了,不再是旧的org.hsqldb.jdbcDriver,而是org.hsqldb.jdbc.JDBCDriver。你需要修改hibernate.cfg.xml中的驱动配置:

<!-- 替换旧的驱动类名 -->
<property name="connection.driver_class">org.hsqldb.jdbc.JDBCDriver</property>

2. 确认HSQLDB依赖的正确性

你提到已经在pom.xml中添加了依赖,但可能存在版本不兼容或者依赖范围错误的情况:

  • 确保依赖没有设置test范围(否则主程序运行时无法访问驱动类)
  • 选择和你的Hibernate版本兼容的HSQLDB版本(比如Hibernate 5.x适配HSQLDB 2.7.x,Hibernate 6.x也支持该版本)

正确的pom.xml依赖示例:

<dependency>
    <groupId>org.hsqldb</groupId>
    <artifactId>hsqldb</artifactId>
    <version>2.7.2</version>
    <!-- 不要添加<scope>test</scope> -->
</dependency>

3. 排查连接池配置冲突

你的配置中同时启用了Hibernate内置连接池(connection.pool_size)和DBCP连接池的配置,这可能导致加载混乱。先暂时注释DBCP的配置,用内置连接池测试连接是否正常:

<!-- 暂时注释DBCP配置,先验证基础连接 -->
<!--
<property name="hibernate.dbcp.initialSize">5</property>
<property name="hibernate.dbcp.maxTotal">20</property>
<property name="hibernate.dbcp.maxIdle">10</property>
<property name="hibernate.dbcp.minIdle">5</property>
<property name="hibernate.dbcp.maxWaitMillis">-1</property>
-->

4. 验证依赖是否正确导入

如果以上步骤都做了还是有问题,检查依赖是否真的被正确引入:

  • 运行mvn dependency:tree命令,查看输出中是否包含HSQLDB的依赖,确认没有被其他依赖排除
  • 在IDE中查看项目的External Libraries,确认HSQLDB的jar包存在

完成这些调整后,重新构建项目并运行,应该就能解决驱动类找不到的问题,进而成功创建数据库连接了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.01 01:28:11