java - 尝试使用 java 应用程序连接 mySQL 数据库一直遇到困难

标签 java mysql

好吧,我有一个 java fx 应用程序,它将显示来自在同一台计算机上本地运行的 mysql 数据库的信息。我一直找不到驱动程序。这是代码:

  String databaseURL = "jdbc:mysql://localhost:3307/mysql?zeroDateTimeBehavior=convertToNull";
            String user = "user";
            String password = "password";
            Connection conn = null;
            try {
                Class.forName("com.mysql.jdbc.Driver");
                conn = DriverManager.getConnection(databaseURL, user, password);
                if (conn != null) {
                    System.out.println("Connected to the database");
                }
            } catch (ClassNotFoundException ex) {
                System.out.println("Could not find database driver class");
                ex.printStackTrace();
            } catch (SQLException ex) {
                System.out.println("An error occurred. Maybe user/password is invalid");
                ex.printStackTrace();
            } finally {
                if (conn != null) {
                    try {
                        conn.close();
                    } catch (SQLException ex) {
                        ex.printStackTrace();
                    }
                }

这是堆栈跟踪:

java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
    at java.net.URLClassLoader$1.run(URLClassLoader.java:372)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:360)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:259)
    at got_map.GOT_Map.start(GOT_Map.java:130)
    at com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$153(LauncherImpl.java:821)
    at com.sun.javafx.application.LauncherImpl$$Lambda$51/1468396900.run(Unknown Source)
    at com.sun.javafx.application.PlatformImpl.lambda$runAndWait$166(PlatformImpl.java:323)
    at com.sun.javafx.application.PlatformImpl$$Lambda$44/584634336.run(Unknown Source)
    at com.sun.javafx.application.PlatformImpl.lambda$null$164(PlatformImpl.java:292)
    at com.sun.javafx.application.PlatformImpl$$Lambda$47/1960854798.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at com.sun.javafx.application.PlatformImpl.lambda$runLater$165(PlatformImpl.java:291)
    at com.sun.javafx.application.PlatformImpl$$Lambda$45/501263526.run(Unknown Source)
    at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95)
    at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
    at com.sun.glass.ui.win.WinApplication.lambda$null$141(WinApplication.java:102)
    at com.sun.glass.ui.win.WinApplication$$Lambda$37/96639997.run(Unknown Source)
    at java.lang.Thread.run(Thread.java:745)
Apr 21, 2017 6:29:06 PM javafx.fxml.FXMLLoader$ValueElement processValue
WARNING: Loading FXML document with JavaFX API of version 8.0.111 by JavaFX runtime of version 8.0.20

任何帮助将不胜感激

最佳答案

java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
    ...    
    at java.lang.Class.forName(Class.java:259)
    at got_map.GOT_Map.start(GOT_Map.java:130)

这个:Class.forName("com.mysql.jdbc.Driver");还不够。
事实上,如果无法从运行时类路径检索该类,则会引发 ClassNotFoundException

您只需在运行时类路径中添加与已安装的 MySQL 版本匹配的 MySQL JDBC 驱动程序即可。

关于java - 尝试使用 java 应用程序连接 mySQL 数据库一直遇到困难,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43549035/

相关文章:

java - 谷歌应用程序引擎部署到同一台机器的两个不同帐户

java - Intellij 调试器 : true becomes false, 发生了什么事...?

java - 在 FileReader 中跳过预定义行

java - 检查与服务器的 TCP 连接数

java - 将 Eclipse RCP 应用程序导出到可运行的 jar 文件

mysql - 批量设置所有 MySQL 列全部为 NULL

MySQL:优化日期范围内记录的查询

php - 为什么我不应该在 PHP 中使用 mysql_* 函数?

具有 3 个表的左连接、计数和分组的 MySQL 查询

php - 从 PHP 中的 mysql_real_escape_string 输出中去除斜杠