Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么我能';t连接MySQL数据库到简单的Java程序?使用所有软件的更新版本_Java_Mysql_Database_Jdbc_Database Connection - Fatal编程技术网

为什么我能';t连接MySQL数据库到简单的Java程序?使用所有软件的更新版本

为什么我能';t连接MySQL数据库到简单的Java程序?使用所有软件的更新版本,java,mysql,database,jdbc,database-connection,Java,Mysql,Database,Jdbc,Database Connection,我收到这个错误-java.lang.ClassNotFoundException:com.mysql.jdbc.Driver。 我正在使用记事本+++编码和命令提示符执行此程序。没有IDE 我已经安装了最新版本的MySQL、JavaSE、JavaConnector。我已经将CLASSPATH变量正确设置为mysql-connector-java-8.0.20.jar文件。您可以检查下图中的类路径 [1] : 我的代码也是正确的,我把我的代码和输出放在下面。 //用java编写MYSQL数据库程序

我收到这个错误-java.lang.ClassNotFoundException:com.mysql.jdbc.Driver。 我正在使用记事本+++编码和命令提示符执行此程序。没有IDE

我已经安装了最新版本的MySQL、JavaSE、JavaConnector。我已经将CLASSPATH变量正确设置为mysql-connector-java-8.0.20.jar文件。您可以检查下图中的类路径 [1] :

我的代码也是正确的,我把我的代码和输出放在下面。 //用java编写MYSQL数据库程序。记事本中的简单连接

import java.sql.*;
public class Db01
{
    public static void main(String args[])
    {
        try {
        System.out.println("Start of program");
        Class.forName("com.mysql.jdbc.Driver");
        Connection con=DriverManager.getConnection("jdbc:mysql://localhost:3306/student","root","root"); 
        Statement stmt=con.createStatement();  
        ResultSet rs=stmt.executeQuery("select * from studenttable");
        while(rs.next())  
        System.out.println(rs.getInt(1)+"  "+rs.getString(2)+"  "+rs.getString(3));  
        con.close();  
        }catch(Exception E)
        {
            System.out.println(E);
            System.out.println("Program end with cought exception");
        }
    }
}
这是我的输出。 节目开始

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

程序以cougt异常结束


我尝试了大多数文档和论坛,但找不到答案请帮助我。

我找到了答案。这就是不兼容驱动程序的问题。我读过MYSQL官方网站的文档。它解释了这一点。 MYSQL提供了两个JDBC纯Java驱动程序系列

1.接头J 8。系列-此驱动器驱动程序添加了许多额外的功能,但大多数情况下,在小型基本程序上,它无法单独工作。它需要安装核心驱动程序5.0

2.接头J 5。系列-这看起来像是最兼容的驱动程序系列。您需要安装它的原始驱动程序。所以,如果检查您是否使用了正确的驱动程序

默认情况下,您的5.0驱动程序将出现在C:\Program Files(x86)\MySQL\Connector J 5.1\MySQL-Connector-java-5.1.48.jar中。创建CLASSPATH变量,指定此驱动程序和程序的.class文件的位置。现在它可以工作了


编辑:我之前说过J7驱动程序是J5驱动程序的附加组件。我错了,有人在评论中纠正了我。所以我重新编辑了这篇文章。我不能保证我上述的回答是正确的,因为我在学习自己。我只是想告诉你我是如何得到我的解决方案的。

我不知道你在用Class.forName(“com.mysql.jdbc.Driver”);如果删除此行,它将不起作用?该语句用于注册驱动程序。它的可选语句,但我正在使用它。下面是当我不使用该语句时会发生的情况--java.sql.SQLException:找不到适合jdbc的驱动程序:mysql://localhost:3306/studentso 您只需将其添加到类路径,下载mysql连接器,然后将JAR添加到依赖项,如果使用intellij,则右键单击“模块设置/依赖项”并添加您下载的连接器这不会是“不兼容”驱动程序的问题。MySQL Connector.J 8.0.x版本仍然包含
com.MySQL.jdbc.Driver
,尽管它已被弃用。而且它不是“现有核心驱动程序的附加组件”(不管这意味着什么)。该错误将表明您的类路径上没有驱动程序。还要注意的是,大多数运行Java应用程序的方法都不使用
CLASSPATH
环境变量,因此最好不要学习该变量,而是使用更为普遍接受的指定类路径的方法。此外,Connector/J 5系列不是“最兼容”的驱动程序。建议使用MySQL Connector/J 8,除非您有很好的理由不这样做。版本8应该适用于版本5应该适用的所有情况(尽管它可能不支持非常旧的MySQL版本)。