我試圖連接到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)
你究竟是如何執行代碼?什麼環境和什麼命令?這將提供對實際正在使用的類路徑更深入的瞭解。順便說一下,以這種方式將這些數據庫資源聲明爲實例變量絕對是一個非常糟糕的主意。不要這樣做。請注意,這與您的具體問題無關。 – BalusC
將連接器jar文件放入您的類路徑中。 jdk和jre lib文件夾不適合您的類路徑。在名爲lib的根類路徑(。)下創建一個文件夾,並將其放在那裏。然後'java -cp。:./ lib/mysql-connector-java-5.1.21.jar YourMainApp'應該可以工作。將其他庫放在jre或jdk庫文件夾中會使您很難升級Java版本。 – km1
您應該瞭解更多關於類路徑。 http://vafer.org/blog/20081203024812/ – km1