Servlet找不到MySQL驱动?JUnit测试却成功了,问题在哪?

Tomcat Servlet无法加载MySQL驱动,JUnit测试却成功的原因及解决方法

在使用Servlet连接MySQL数据库时,出现找不到MySQL驱动的错误。奇怪的是,同样的代码在JUnit单元测试中却能正常运行。

问题根源:Tomcat类路径缺失JDBC驱动

问题在于Tomcat 9的类加载机制。Servlet运行在Tomcat容器中,而JUnit测试运行在独立的JVM环境中。JUnit测试环境通常已经包含了必要的JDBC驱动,而Tomcat的类路径中可能缺少MySQL Connector/J JAR包。

解决方案:手

动部署MySQL驱动到Tomcat

  1. 下载MySQL Connector/J: 从MySQL官方网站下载与您MySQL版本兼容的Connector/J JAR包。

  2. 部署到Tomcat lib目录: 将下载的JAR包复制到Tomcat的lib目录下(例如:C:\Tomcat\lib)。Tomcat启动时会自动加载该目录下的JAR包。

完成以上步骤后,重新启动Tomcat服务器,Servlet应该就能成功加载MySQL驱动并连接数据库了。