java.lang.ClassNotFoundException:Eclipse中的com.mysql.jdbc.Driver

ati*_*ain 81 java jdbc mysql-connector

代码有什么问题,调试时有很多错误.我正在编写一个单例类的代码来连接数据库mysql.

这是我的代码

package com.glomindz.mercuri.util;
import java.sql.Connection;
import java.sql.Driver;
import java.sql.DriverManager;
import java.sql.SQLException;

public class MySingleTon {
    String url = "jdbc:mysql://localhost:3306/";
    String dbName = "test";
    String driver = "com.mysql.jdbc.Driver";
    String userName = "root";
    String password = "";

    private static MySingleTon myObj;   
    private Connection Con ;
    private MySingleTon() {
        System.out.println("Hello");
        Con= createConnection();
    }

    @SuppressWarnings("rawtypes")
    public Connection createConnection() {
        Connection connection = null;
        try {
            // Load the JDBC driver
            Class driver_class = Class.forName(driver);
            Driver driver = (Driver) driver_class.newInstance();
            DriverManager.registerDriver(driver);
            connection = DriverManager.getConnection(url + dbName);
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (SQLException e) {
            e.printStackTrace();
        } catch (IllegalAccessException e) {
            e.printStackTrace();
        } catch (InstantiationException e) {
            e.printStackTrace();
        }
        return connection;
    }

    /**
     * Create a static method to get instance.
     */
    public static MySingleTon getInstance() {
        if (myObj == null) {
            myObj = new MySingleTon();
        }
        return myObj;
    }

    public static void main(String a[]) {
        MySingleTon st = MySingleTon.getInstance();
    }
}
Run Code Online (Sandbox Code Playgroud)

我是java的新手.请帮忙.

R9J*_*R9J 118

似乎mysql连接库未包含在项目中.按照建议的解决方案之一解决问题:

  • MAVEN项目解决方案

将mysql-connector依赖项添加到pom.xml项目文件:

<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>5.1.39</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)

这里是所有版本:https://mvnrepository.com/artifact/mysql/mysql-connector-java

  • 所有项目解决方案

手动将jar库添加到项目中.

右键单击项目 - >构建路径 - >配置构建路径

Libraries Tab 媒体 Add External JarSelect你的罐子里.

你可以在这里找到mysql-connector的zip

  • 说明:

在构建项目时,java会抛出异常,因为找不到mysql连接库中的文件(com.mysql.jdbc.Driver类).解决方案是将库添加到项目中,java将找到com.mysql.jdbc.Driver

  • 如果我们不使用任何IDE并只是在我们的终端上运行怎么办?那怎么处理这个问题呢? (7认同)
  • 除非您按照@Asad 的建议将“mysql-connector-java-8.0.15.jar”文件添加到“apache-tomcat-9.0.16\lib”文件夹中,否则问题不会得到解决。 (2认同)

小智 50

如果IDE中出现错误(编译时错误),则需要将mysql-connector jar文件添加到libs中,并将其添加到引用的项目库中.

如果在运行它时出现此错误,那么可能是因为您没有将mysql-connector JAR文件包含到Web服务器的lib文件夹中.

添加mysql-connector-java-5.1.25-bin.jar到您的类路径以及您的web服务器的lib目录.给出了Tomcat lib路径作为示例Tomcat 6.0\lib

  • 添加到服务器库是重要的一点,请注意,感谢为我工作 (2认同)

naX*_*aXa 13

对于基于Gradle的项目,您需要依赖于MySQL Java Connector:

dependencies {
    compile 'mysql:mysql-connector-java:6.0.+'
}
Run Code Online (Sandbox Code Playgroud)


Nar*_*hai 11

您必须在类路径中包含MySQL MySQL Connector Jar的驱动程序jar .

如果您使用的是Eclipse: 如何在Eclipse中添加依赖库

如果您正在使用命令行,请使用java的-cp参数包含驱动程序jar的路径.

java -cp C:\lib\* Main
Run Code Online (Sandbox Code Playgroud)


KhA*_*aAb 10

从这里检查(mysql-connector-java-bin)你的类路径下载中的 jar


Tah*_*Mir 10

每个人都写了一个答案,但我仍然感到惊讶的是,没有人使用最好的简单方法真正回答它。
人们回答包括jar文件。但是,错误仍然会发生。

原因是在运行项目时未部署jar。因此,我们需要做的就是告诉IDE也部署这个jar。

这里的人们回答了很多次,因此将该jar文件放在WEB-INF的lib文件夹中。看起来还可以,但为什么要手动进行。有简单的方法。检查以下步骤:

步骤1:如果尚未将jar文件引用到项目中,请像这样引用它。

右键单击项目,然后转到项目属性。然后,转到Java构建路径,然后通过该路径添加外部jar文件。

但这仍然不能解决问题,因为通过构建路径添加外部jar仅有助于编译类,并且在运行项目时不会部署jar。为此,请执行此步骤

右键单击项目,然后转到项目属性。然后,转到Deployment Assembly,然后按Add,然后转到java构建路径条目并添加您的库,无论它是jstl,mysql还是任何其他jar文件。将它们添加到部署中。下面是显示它的两张图片。

在添加之前

添加后


Sat*_* SR 8

JDBC API主要由独立于任何数据库的接口组成.每个实现JDBC API的数据库都需要特定于数据库的驱动程序.

首先从www.mysql.com下载MySQL连接器jar,然后:

Right Click the project -- > build path -- > configure build path

在库选项卡中,按下Add External Jar并选择您的jar.


tom*_*ssi 5

对于基于 Maven 的项目,您需要一个依赖项。

<dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>5.1.38</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)