【问题标题】:com.mysql.jdbc.Driver not found with mysql connector in buildpathcom.mysql.jdbc.Driver 在构建路径中找不到 mysql 连接器
【发布时间】:2012-10-16 17:28:49
【问题描述】:

我使用 Eclipse juno。我的构建路径中有 mysql-connector-java-5.1.22-bin.jar,我尝试建立到我的 mysql 数据库的数据库连接。这是我的代码

public Connection getConnectionToDB() {
    try {
        Class.forName(driver);
        Connection con = DriverManager.getConnection(url + dbName,
                userName, password);
        return con;
    } catch (Exception e) {
        e.printStackTrace();
    }
    return null;
}

当我调试它时,我发现问题出在:

Class.forName(driver);

我也尝试将其替换为:

Class.forName(driver).newInstance();

在这一行,它爆发到异常并抛出这个异常:

java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1676)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1521)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:169)
at main.jdbc.BaseJdbc.getConnectionToDB(BaseJdbc.java:18)
at main.jdbc.UserDriverJdbc.queryUserById(UserDriverJdbc.java:15)
at main.drivers.UserDriver.findUserById(UserDriver.java:50)
at main.drivers.UserDriver.isLoginValid(UserDriver.java:56)
at main.controllers.LoginController.doPost(LoginController.java:33)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:641)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:240)
at org.apache.catalina.core.StandardContextValve.__invoke(StandardContextValve.java:164)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:462)
at org.apache.catalina.core.StandardHostValve.__invoke(StandardHostValve.java:164)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:562)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:395)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:250)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:188)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:166)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:302)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:662)

【问题讨论】:

    标签: mysql jdbc mysql-connector


    【解决方案1】:

    我很难找到答案,但我想通了。这当然是类路径问题。

    如果你曾经遇到过这样的问题并尝试在 eclipse 中解决它,请转到

    eclipse -> 窗口 -> 首选项 -> java -> buildpath -> 类路径

    并添加

    “mysql-connector-java-5.1.22-bin.jar”

    作为新变量。随便取个名字就行。希望这会有所帮助。

    【讨论】:

      【解决方案2】:

      您需要确保在项目中加载了正确的库和 jar 文件。在使用 postgresql 时,我经常处理这个问题。我认为您只是缺少 jar 文件。

      【讨论】:

      • 正如我所说,我的构建路径中有 mysql-connector-java-5.1.22-bin.jar :(。我还使用其他建议的帖子设置了我的 CLASSPATH 变量。
      • 您查看过网站上发布的其他一些问题吗?我发现这个看起来与你正在做的事情stackoverflow.com/questions/12601879/… 和这个stackoverflow.com/questions/12633149/… 相似。否则我会无所适从。您的代码看起来正确。
      • 我只是意识到这个问题可能与 eclipse juno 相关。我似乎也无法让我的 log4j 工作。我会更多地挖掘它。
      【解决方案3】:

      这是我的问题,在这里得到了解答: SO Link

      “如果此代码在您的 J2SE 中有效,则意味着您需要在某处包含 com.mysql.jdbc.Driver 类(所谓的 JDBC 驱动程序)的 JAR 文件。此 JAR 需要在 Tomcat 中可见。所以,我会建议将 mysql-jdbc.jar 放在项目的 /WEB-INF/lib 目录的物理位置。”来自

      【讨论】:

        【解决方案4】:

        我一直在到处寻找解决方案。也许这不是您的解决方案,但使用 Eclipse 我导出为 JAR 文件并得到相同的异常,但随后导出为“可运行的 JAR”并且它起作用了。

        【讨论】:

          【解决方案5】:

          如果您使用 netbeans,请执行以下操作: 转到您的应用程序>>>库>>添加 jar(通过右键单击)>>“mysql-connector-java-5.1.22-bin.jar”

          【讨论】:

            猜你喜欢
            • 2013-04-30
            • 2012-12-31
            • 1970-01-01
            • 2012-12-01
            • 1970-01-01
            • 2016-12-23
            • 2015-01-12
            • 2021-05-12
            • 2013-11-16
            相关资源
            最近更新 更多