Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/308.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
Java can';t将Mysql连接到NetBeans(在windows操作系统中)_Java_Mysql_Mysql Workbench_Classnotfoundexception_Mysql Connector - Fatal编程技术网

Java can';t将Mysql连接到NetBeans(在windows操作系统中)

Java can';t将Mysql连接到NetBeans(在windows操作系统中),java,mysql,mysql-workbench,classnotfoundexception,mysql-connector,Java,Mysql,Mysql Workbench,Classnotfoundexception,Mysql Connector,我在将MySQL连接到Java时遇到问题。我还没有找到适用于windows的驱动程序,并且被告知选择平台无关。 我使用的是NetBeans ide 8.2、MySQL server 8.0.13和MySQL Workbench 8.0.13。我曾尝试下载较旧版本的驱动程序,看看是否可以正常工作,但结果是一样的: java.lang.ClassNotFoundException:com.mysql.cj.jdbc.Driver 当我运行时,记录不会显示在输出中 我错过什么了吗?除了向NetBea

我在将MySQL连接到Java时遇到问题。我还没有找到适用于windows的驱动程序,并且被告知选择平台无关。 我使用的是NetBeans ide 8.2、MySQL server 8.0.13和MySQL Workbench 8.0.13。我曾尝试下载较旧版本的驱动程序,看看是否可以正常工作,但结果是一样的:

java.lang.ClassNotFoundException:com.mysql.cj.jdbc.Driver
当我运行时,记录不会显示在输出中 我错过什么了吗?除了向NetBeans中的库添加驱动程序和编写连接代码之外,我还需要做其他事情吗?请帮帮我,我是新手,我需要帮助。谢谢你

我同意f1sh的观点,即您的代码看起来还可以,而且代码中不需要
Class.forName()
行。我还同意,在下载驱动程序时,option Platform Independent是Windows操作系统的正确选择

但是,很遗憾,您的屏幕截图没有显示您在节点下添加的驱动程序的文件扩展名。您能否确认文件的扩展名是jar,而不是ziptar

下载MySQL驱动程序将创建一个ziptar文件(取决于您选择的选项),但您必须解压缩该文件才能访问名为MySQL-connector-java-8.0.13.jar的实际驱动程序,并且该文件必须添加到您的项目中:

如果我包括
Class.forName()
调用,并将zip而不是jar添加到一个简单的测试项目中,我会得到与您在NetBeans中完全相同的错误:

run:
Exception in thread "main" java.lang.ClassNotFoundException: com.mysql.cj.jdbc.Driver
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:264)
    at jdbcselecttest.JdbcSelectTest.dbQuery(JdbcSelectTest.java:31)
    at jdbcselecttest.JdbcSelectTest.main(JdbcSelectTest.java:25)
C:\Users\johndoe\AppData\Local\NetBeans\Cache\8.2\executor-snippets\run.xml:53: Java returned: 1
BUILD FAILED (total time: 0 seconds)
值得注意的是,如果不使用
类.forName()
调用,错误更改如下:

run:
java.sql.SQLException: No suitable driver found for jdbc:mysql://localhost:3306/ebookshop?useSSL=false
    at java.sql.DriverManager.getConnection(DriverManager.java:689)
    at java.sql.DriverManager.getConnection(DriverManager.java:247)
    at jdbcselecttest.JdbcSelectTest.dbQuery(JdbcSelectTest.java:32)
    at jdbcselecttest.JdbcSelectTest.main(JdbcSelectTest.java:25)
BUILD SUCCESSFUL (total time: 0 seconds)
如果我删除了zip文件,并添加了jar,那么所有文件都可以正常工作


如果您已经正确地使用了jar文件,那么还有更多的选项需要探索,但这似乎是您问题的最可能原因。

我们无法帮助您做到这一点。你说的是用于java的mysql驱动程序吗?你的密码在哪里?你有什么例外?你希望你的问题得到什么样的答案?我刚刚添加了看起来不错的照片。类名对于8.0.13是正确的,在以前的驱动程序版本中,它曾经位于不同的包中。但它似乎不在你的课堂路径中。能否删除
Class.forName
行,并查看它在没有它的情况下是否工作?人工检查类已经多年没有必要了。我已经把jar文件放在库中了。我去问我的问题,有人告诉我也必须添加一个odbc jar?我不知道在哪里可以找到它。我甚至不知道我是否做得对。我觉得很失落。现在我想借一台mac电脑在那里重做这个项目。无论如何,谢谢。@skomisa