Java can';t将Mysql连接到NetBeans(在windows操作系统中)
我在将MySQL连接到Java时遇到问题。我还没有找到适用于windows的驱动程序,并且被告知选择平台无关。 我使用的是NetBeans ide 8.2、MySQL server 8.0.13和MySQL Workbench 8.0.13。我曾尝试下载较旧版本的驱动程序,看看是否可以正常工作,但结果是一样的: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
java.lang.ClassNotFoundException:com.mysql.cj.jdbc.Driver
当我运行时,记录不会显示在输出中
我错过什么了吗?除了向NetBeans中的库添加驱动程序和编写连接代码之外,我还需要做其他事情吗?请帮帮我,我是新手,我需要帮助。谢谢你我同意f1sh的观点,即您的代码看起来还可以,而且代码中不需要
Class.forName()
行。我还同意,在下载驱动程序时,option Platform Independent是Windows操作系统的正确选择
但是,很遗憾,您的屏幕截图没有显示您在库节点下添加的驱动程序的文件扩展名。您能否确认文件的扩展名是jar,而不是zip或tar
下载MySQL驱动程序将创建一个zip或tar文件(取决于您选择的选项),但您必须解压缩该文件才能访问名为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