2017-04-21 101 views
0

好吧,所以我有一個java fx應用程序,將顯示在同一臺計算機上本地運行的mysql數據庫的信息。我一直找不到驅動程序。這裏是代碼:嘗試連接mySQL數據庫與Java應用程序繼續卡住

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 

任何幫助,將不勝感激

+0

您是否在使用像maven這樣的構建工具?如果不是,則需要將MySQL JDBC驅動程序添加到構建路徑。 – kevcodez

回答

2
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驅動程序。

0

問題在於,Class.forName(「com.mysql.jdbc.Driver」); 獲取java.lang.ClassNotFoundException的原因可能是加載驅動程序時的一個問題。如果您尚未添加* .jar驅動程序,請將該驅動程序添加到您的項目中。

相關問題