我试图连接到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