Hibernate 6.0.0.Alpha9升级后无法解析c3p0 DriverManagerDataSource问题
com.mchange.v2.c3p0.DriverManagerDataSource 本身不属于Hibernate的内置类,是c3p0连接池独立发行包中的类,你遇到的报错不是类被移除,是Hibernate 6的hibernate-c3p0组件不再默认传递依赖c3p0核心包,导致项目缺少对应类的依赖。
你可以选择以下任意一种方案解决问题:
方案1:继续使用c3p0的DataSource
单独引入c3p0官方依赖即可,无需修改现有配置代码:
- Maven配置:
<dependency> <groupId>c3p0</groupId> <artifactId>c3p0</artifactId> <version>0.9.5.5</version> </dependency>
- Gradle配置:
implementation 'c3p0:c3p0:0.9.5.5'
依赖引入完成后,原有import和dataSource Bean的代码可直接正常运行。
方案2:改用Spring自带的DataSource(更推荐,无需额外依赖)
Spring JDBC模块自带同名功能类,完全兼容你现有配置的参数设置方法,仅需修改import语句即可:
把原有import com.mchange.v2.c3p0.DriverManagerDataSource;替换为:
import org.springframework.jdbc.datasource.DriverManagerDataSource;
其余dataSource Bean的代码无需任何调整,即可正常用于Spring Security、Liquibase以及Hibernate的数据源配置。
补充提示:上述两种方案用到的DriverManagerDataSource均未实现连接池能力,仅适合开发测试环境使用,生产环境建议替换为HikariCP等高性能连接池实现。
内容的提问来源于stack exchange,提问作者Pavel Polyakoff
相关产品推荐
相关产品推荐

