七种方法解决com.mchange.v2.c3p0.DriverManagerDataSource Could not load driverClass com.mysql.cj.jdbc.Drive

4 篇文章 0 订阅
4 篇文章 0 订阅

SSM新项目搭建报错:

com.mchange.v2.c3p0.DriverManagerDataSource. Could not load driverClass com.mysql.cj.jdbc.Driver
java.lang.ClassNotFoundException: com.mysql.cj.jdbc.Driver

报错详情如下
在这里插入图片描述
环境:

  • Tomcat9.0.24
  • MySQL8.0.19
  • MyBatis3.5.2
  • SpringMVC5.1.9

使用localhost:8080/login,点击登录无法跳转。
首先,根据错误找到是c3p0抛出的错误并且错误原因是数据库驱动加载失败。


此问题解决方案多样:

1、检查jdbc.properties文件中的jdbc.driver=com.mysql.cj.jdbc.Driver后是否有空格或者回车,如图所示

在这里插入图片描述
如果无误或者修改后仍然报错,请看2


2、检查xml文件中的name是否有空格

如图所示
在这里插入图片描述
如果还未解决,请看3


3、检查pom.xml中数据库版本与本机数据库版本是否对应

如果数据库是MySQL 5.x的,驱动应该写为jdbc.driver=com.mysql.jdbc.Driver

如果数据库是MySQL 8.x的,驱动应该写为jdbc.driver=com.mysql.cj.jdbc.Driver

修改即可。
如还未解决,请看4


4、暂时更换为Spring自带数据源测试,检查是否仍然存在问题。

如果仍然报错,则检查pom.xml文件中c3p0数据源的版本,如果版本较低,则也会出现错误,截至目前,c3p0最新版本为0.9.5.5
最新版本请查:点击进入官网

如果问题仍然得不到解决,则看5


5、检查jdbc.url是否有useSSL=true

如下

jdbc:mysql://localhost:3306/mysql?useSSL=true

修改为useSSL=false

如果再不成功,请看6


6、检查jdbc.properties中是否填写规范

错误示范

driver=com.mysql.cj.jdbc.Driver
url=jdbc:mysql://localhost:3306/mysql?useSSL=false
password=root123

正确示范

jdbc.driver=com.mysql.cj.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/mysql?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=GMT%2B8
jdbc.user=root
jdbc.password=root123

主要规范了字段名前加了一个jdbc.和jdbc.url中是否设置时区。

如果仍然无法解决,请看最后一个方案7


7、检查项目配置中是否在lib中导入了正确的mysql包和c3p0

MySQL对应包mysql-content-java-8.0.19.jar
c3p0对应包c3p0-0.9.5.5.jar

如何检查?
如图所示
1)
在这里插入图片描述
2)
在这里插入图片描述
3)检查圈中的三个是否变红
在这里插入图片描述
如果变红,则此处是为罪魁祸首。
将其选中删除,并重新导入,导入步骤如图所示:
1))

在这里插入图片描述
2))
在这里插入图片描述
3))
在这里插入图片描述
点击Apply应用,完成修改,重新运行成功。

总结:在SSM项目web工程中,每导入一个新的依赖,都需要去项目结构的lib中引入。如何引入,详情请看:查看文章


## 锦上添花:

如有需要可以在pomxml中添加c3p0的辅助工具:

<dependency>
    <groupId>com.mchange</groupId>
    <artifactId>mchange-commons-java</artifactId>
    <version>0.2.20</version>
</dependency>
  • 38
    点赞
  • 50
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 17
    评论
评论 17
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

君去何方

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值