2012-09-03 72 views
0

我試圖連接到MySQL數據庫,用的連接網址:Java的MySQL驅動程序和ClassNotFoundException的

jdbc:mysql://127.0.0.1:3306/test 

我已經下載了coorect MySQL驅動程序與數據庫連接,並嘗試了衆多設置驅動程序的方法,每個都不起作用。到目前爲止,我已經嘗試把JAR文件在以下位置(並相應地改變PATH環境變量)

JRE/LIB/ 
JDK/LIB/ 
JRE/LIB/mysql-connector-java-5.1.21 
JDK/LIB/mysql-connector-java-5.1.21 

的JAR文件的路徑一直是它的位置+ mysql-connector-java-5.1.21-bin.jar

過去4+小時我已經閱讀了關於StackOverflow的多個問題和解決方案,以及關於這個問題的在線教程,但都沒有解決這個問題。

我一直在使用下面的代碼嘗試連接

import java.sql.*; 
import java.util.Date; 

public class DatabaseHelper{ 

    private Connection   conn    = null; 
    private Statement   statement   = null; 
    private PreparedStatement preparedStatement = null; 
    private ResultSet   resultSet   = null; 
    private String    url     = null; 

    public DatabaseHelper(){ 
     try{ 
      Class.forName("com.mysql.jdbc.Driver"); 
      conn = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/test"); 
      System.out.println("Driver Loaded!"); 
     }catch(SQLException e){ 
      e.printStackTrace(); 
     }catch(ClassNotFoundException e){ 
      e.printStackTrace(); 
     } 
    } 
} 

堆棧跟蹤

java.lang.ClassNotFoundException: com.mysql.jdbc.Driver 
     at java.net.URLClassLoader$1.run(URLClassLoader.java:366) 
     at java.net.URLClassLoader$1.run(URLClassLoader.java:355) 
     at java.security.AccessController.doPrivileged(Native Method) 
     at java.net.URLClassLoader.findClass(URLClassLoader.java:354) 
     at java.lang.ClassLoader.loadClass(ClassLoader.java:423) 
     at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) 
     at java.lang.ClassLoader.loadClass(ClassLoader.java:356) 
     at java.lang.Class.forName0(Native Method) 
     at java.lang.Class.forName(Class.java:186) 
     at DatabaseHelper.<init>(DatabaseHelper.java:28) 
     at DatabaseTest.<init>(DatabaseTest.java:6) 
     at DatabaseTest.main(DatabaseTest.java:14) 
+0

你究竟是如何執行代碼?什麼環境和什麼命令?這將提供對實際正在使用的類路徑更深入的瞭解。順便說一下,以這種方式將這些數據庫資源聲明爲實例變量絕對是一個非常糟糕的主意。不要這樣做。請注意,這與您的具體問題無關。 – BalusC

+0

將連接器jar文件放入您的類路徑中。 jdk和jre lib文件夾不適合您的類路徑。在名爲lib的根類路徑(。)下創建一個文件夾,並將其放在那裏。然後'java -cp。:./ lib/mysql-connector-java-5.1.21.jar YourMainApp'應該可以工作。將其他庫放在jre或jdk庫文件夾中會使您很難升級Java版本。 – km1

+0

您應該瞭解更多關於類路徑。 http://vafer.org/blog/20081203024812/ – km1

回答

1

您需要將JAR添加到類路徑。當啓動Java應用程序,簡單地說:

java -cp mysql-connector-java-5.1.21-bin.jar TheNameOfYourMainClass 
+0

嗨resh32,我已經嘗試過這種方法,它不工作! – Jnanathan

+0

檢查並確保它不是類路徑順序問題:http:// stackoverflow。COM /問題/ 1585811/ClassNotFoundException的-COM-的mysql-JDBC驅動程序 – Resh32

+0

我已經看過了這個問題,並試圖解決方案提供沒有工作:) – Jnanathan

0

,同時在項目的工作之前,我遇到這個問題,我把jar文件在2個地點,有什麼工作對我來說是如下:

我把在JAVA_HOME/JRE_FOLDER/lib /分機/

mysql jar然後另一件事是,我在項目中創建一個libs文件夾(直接在項目的文件夾中),並將其放在它的mysql jar。之後,將jar(libs文件夾內的jar)添加到項目的構建路徑。

如果您使用Eclipse,將jar添加到構建路徑是通過右鍵單擊jar並從菜單中選擇「Build Path」並選擇「Add to Build Path」來完成的。

希望這會有所幫助,