java.lang.ClassNotFoundException:com.mysql.jdbc.Driver,即使在Intellij上使用了mysql Maven依赖项

java.lang.ClassNotFoundException:com.mysql.jdbc.Driver,即使在Intellij上使用了mysql Maven依赖项,java,mysql,maven,tomcat,jdbc,Java,Mysql,Maven,Tomcat,Jdbc,我将Intellij用于servlet项目,并使用maven <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>6.0.6</version> </dependency> 只是复制了你的错误。新版本中的驱动程序名称

我将Intellij用于servlet项目,并使用maven

 <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>6.0.6</version>
 </dependency>

只是复制了你的错误。新版本中的驱动程序名称似乎已更改。当您下载maven依赖项时,最好使用最新的稳定版本,这样您就可以从社区获得更好更快的支持`com.mysql.cj.jdbc.Driver' 这就是我得到的错误消息:

正在加载类
com.mysql.jdbc.Driver'。这是不赞成的。新的驱动程序类是
com.mysql.cj.jdbc.driver'。驱动程序通过SPI自动注册,通常不需要手动加载驱动程序类。
com.mysql.cj.jdbc.exceptions.CommunicationsException:通信链路故障

您必须手动将
jdbc\u连接器
添加到tomcat服务器,您应该将您的jar包含到我正在使用的这个文件夹
$TOMCAT_HOME/lib

我没有得到您在这里建议的修改?它也找不到这个驱动程序java.lang.ClassNotFoundException:com.mysql.cj.jdbc.driver,位于org.apache.catalina.loader.WebappClassLoaderBase.loadercase(WebappClassLoaderBase.java:1285)位于org.apache.catalina.loader.WebappClassLoaderBase.loadeclass(WebappClassLoaderBase.java:1119)的java.lang.Class.forName0(本机方法)的java.lang.Class.forName(Class.java:264)的com.saurabh.testdb.TestDBServlet.doGet(TestDBServlet.java:42)的javax.servlet.http.HttpServlet.service(HttpServlet.java:635)在javax.servlet.http.HttpServlet.service(HttpServlet.java:742)中,它工作正常。。。但它是如何工作的。。。但是怎么做??maven依赖项不应该解决这个问题吗?是的,因为Tomcat不包括连接到数据库的jdbc连接器,所以您必须手动添加它,这样它就可以使用它@Saurabhnope maven使用您的应用程序而不是服务器@Saurabh
package com.saurabh.testdb;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.DriverManager;

@WebServlet("/TestDBServlet")
public class TestDBServlet extends HttpServlet {

@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

    //set up connection variable
    String jdbcUrl = "jdbc:mysql://localhost:3306/web_customer_tracker?useSSL=false";
    String user = "springstudent";
    String pass = "sringstudent";
    String driver = "com.mysql.jdbc.Driver";

    try {

        PrintWriter out = resp.getWriter();

        out.println("Connecting to database: " + jdbcUrl);

        Class.forName(driver);

        Connection myConn = DriverManager.getConnection(jdbcUrl, user, pass);

        out.println("Connection successful!!!");

        myConn.close();

    } catch (Exception exc) {
        exc.printStackTrace();
    }
    }
}