106

代码有什么问题,调试时有很多错误。我正在为单例类编写代码以连接数据库 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();
    }
}

我是java新手。请帮忙。

4

20 回答 20

138

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

  • Maven 项目解决方案

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

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

这里是所有版本: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

于 2013-07-05T09:00:31.860 回答
55

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

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

添加mysql-connector-java-5.1.25-bin.jar到您的类路径以及您的网络服务器的 lib 目录。以Tomcat lib路径为例Tomcat 6.0\lib

于 2013-07-05T10:56:53.177 回答
21

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

原因是项目运行时没有部署jar。所以,我们需要做的是,告诉 IDE 也部署这个 jar。

这里的人已经回答了很多次,把那个jar文件放在WEB-INF的lib文件夹中。这看起来不错,但为什么要手动操作。有简单的方法。检查以下步骤:

第 1 步:如果您还没有将 jar 文件引用到项目中,请像这样引用它。

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

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

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

添加前

添加后

于 2018-12-11T10:57:49.537 回答
15

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

dependencies {
    compile 'mysql:mysql-connector-java:6.0.+'
}
于 2015-03-11T13:28:22.023 回答
13

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

于 2013-07-05T08:51:56.553 回答
12

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

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

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

java -cp C:\lib\* Main
于 2013-07-05T08:51:12.040 回答
8

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

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

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

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

于 2014-08-22T10:21:19.603 回答
4

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

<dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>5.1.38</version>
</dependency>
于 2015-02-20T12:03:01.720 回答
2

在项目中进入文件夹Libraries-->右键-->添加库-->Mysqlconnector 5.1

于 2014-04-25T17:50:03.500 回答
2

驱动程序连接器不在您的构建路径中。配置构建路径并将其指向“mysql-connector-java-5.1.25-bin.jar”(检查您使用的版本)。或者,您可以使用 Maven :D

于 2014-11-11T05:33:11.727 回答
2

对于 IntelliJ Idea,转到您的项目结构(文件、项目结构),并将 mysql 连接器 .jar 文件添加到您的全局库中。在那里,右键单击它并选择“添加到模块”。点击应用/确定,您应该一切顺利。

于 2018-07-21T19:02:09.673 回答
2

这需要从 2021 年开始使用

    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>8.0.21</version>
    </dependency>
于 2019-12-07T10:24:46.390 回答
1

在我的情况下,netbeans 版本的 maven 项目 7.2.1 看起来很微不足道。项目中有一个名为 dependencies 的文件夹。右键单击,然后它会弹出一个弹出窗口,您可以在其中搜索包。在查询区放

mysql-connector

它会调出匹配项(似乎它是针对某个存储库执行此操作的)。双击然后安装。

于 2013-12-19T04:06:00.903 回答
1

这是因为WEB-INF文件夹在报错的子目录中的位置不存在。您可以编译应用程序以使用 public_html 下的 WEB-INF 文件夹,或者将 WEB-INF 文件夹复制到子文件夹中,如上述错误所示。

于 2014-03-13T06:38:15.393 回答
0

如果您使用的是 tomcat,那么您还应该将数据库连接器 jar 文件连同项目目录一起复制到 tomcat/lib。这对我有用

于 2017-02-07T20:11:23.827 回答
0

我理解你的问题在你的 pom.xml 中添加这个依赖,你的问题就会得到解决,

https://mvnrepository.com/artifact/mysql/mysql-connector-java/5.1.38

于 2016-06-23T13:00:07.103 回答
0

由于未定义类路径,也可能发生异常。

经过数小时的研究和数百页的阅读,问题是没有定义库的类路径。

在你的windows机器中设置类路径如下

set classpath=path\to\your\jdbc\jar\file;.
于 2016-03-26T00:42:27.403 回答
0

我正在Eclipse IDE中使用 SQLite 数据库开发一个简单的 JavaFX11 应用程序。为了生成报告,我添加了 Jasper jars。突然它抛出“这个”错误。

java.lang.ClassNotFoundException: com.mysql.jdbc.Driver

它运行良好(在此添加之前)。但是突然!

对于这个简单的应用程序,我没有使用 maven 或其他管理器。我正在手动添加罐子。

我创建了“用户库”并从外部文件夹添加了我的 jar。

问题发生区域: 我的“用户库”被标记为系统库。我刚刚删除了标记。现在它不是系统库。“现在我的项目运行良好”。

自己调试:尝试了其他事情: 在运行配置:尝试,删除库并一个接一个地添加罐子,然后看看。- 这里你必须一个一个地删除所有的jar,现在在运行配置中没有全选并在eclipse中删除。所以错误消息从一个罐子变成另一个罐子。

希望这可以帮助某人。

于 2020-02-26T06:24:07.427 回答
0
I was also facing the same problem

下载mysql-connector-java jar 文件

将其粘贴在C:\Program Files\Apache Software Foundation\Tomcat 9.0\lib

希望这对你也有用!

于 2020-11-26T11:21:11.167 回答
0

最后

我通过两个步骤解决了:

1 - 将以下内容添加到 pom.xml

  <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.0.8</version>
        </dependency>

2 - 从此 URL 下载 jar 文件:https ://mvnrepository.com/artifact/mysql/mysql-connector-java/5.0.8 之后将其放入您的tomcat/lib文件夹中。

于 2022-03-02T13:08:07.467 回答