關於解決java.lang.ClassNotFoundException: com.mysql.jdbc.Driver問題

昨天寫了一個Swing小程序,JDBC連接數據庫,但是在運行的時候報錯java.lang.ClassNotFoundException: com.mysql.jdbc.Driver

檢查了一下JDBC,並沒有寫錯,於是就寫了小demo如下:

package com.company;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class test2 {
    Connection connection;
    public Connection getConnection(){
        try {
            Class.forName("com.mysql.jdbc.Driver");
            System.out.println("數據庫驅動家在成功");
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
        try {
            connection= DriverManager.getConnection("jdbc:mysql://localhost:3306/test?useSSL=false","root","root");
            System.out.println("連接成功");
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return  connection;

    }

    public static void main(String[] args) {
        test2 test2=new test2();
        test2.getConnection();
    }
}

運行之後報錯如下:

"C:\Program Files\Java\jdk1.8.0_201\bin\java.exe" "-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA 2018.3.6\lib\idea_rt.jar=13257:C:\Program Files\JetBrains\IntelliJ IDEA 2018.3.6\bin" -Dfile.encoding=UTF-8 -classpath "C:\Program Files\Java\jdk1.8.0_201\jre\lib\charsets.jar;C:\Program Files\Java\jdk1.8.0_201\jre\lib\deploy.jar;C:\Program Files\Java\jdk1.8.0_201\jre\lib\ext\access-bridge-64.jar;C:\Program Files\Java\jdk1.8.0_201\jre\lib\ext\cldrdata.jar;C:\Program Files\Java\jdk1.8.0_201\jre\lib\ext\dnsns.jar;C:\Program Files\Java\jdk1.8.0_201\jre\lib\ext\jaccess.jar;C:\Program Files\Java\jdk1.8.0_201\jre\lib\ext\jfxrt.jar;C:\Program Files\Java\jdk1.8.0_201\jre\lib\ext\localedata.jar;C:\Program Files\Java\jdk1.8.0_201\jre\lib\ext\nashorn.jar;C:\Program Files\Java\jdk1.8.0_201\jre\lib\ext\sunec.jar;C:\Program Files\Java\jdk1.8.0_201\jre\lib\ext\sunjce_provider.jar;C:\Program Files\Java\jdk1.8.0_201\jre\lib\ext\sunmscapi.jar;C:\Program Files\Java\jdk1.8.0_201\jre\lib\ext\sunpkcs11.jar;C:\Program Files\Java\jdk1.8.0_201\jre\lib\ext\zipfs.jar;C:\Program Files\Java\jdk1.8.0_201\jre\lib\javaws.jar;C:\Program Files\Java\jdk1.8.0_201\jre\lib\jce.jar;C:\Program Files\Java\jdk1.8.0_201\jre\lib\jfr.jar;C:\Program Files\Java\jdk1.8.0_201\jre\lib\jfxswt.jar;C:\Program Files\Java\jdk1.8.0_201\jre\lib\jsse.jar;C:\Program Files\Java\jdk1.8.0_201\jre\lib\management-agent.jar;C:\Program Files\Java\jdk1.8.0_201\jre\lib\plugin.jar;C:\Program Files\Java\jdk1.8.0_201\jre\lib\resources.jar;C:\Program Files\Java\jdk1.8.0_201\jre\lib\rt.jar;E:\JavaData\test3\out\production\test3" com.company.test2
java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
	at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
	at java.lang.Class.forName0(Native Method)
	at java.lang.Class.forName(Class.java:264)
	at com.company.test2.getConnection(test2.java:13)
	at com.company.test2.main(test2.java:30)
java.sql.SQLException: No suitable driver found for jdbc:mysql://localhost:3306/test?useSSL=false
	at java.sql.DriverManager.getConnection(DriverManager.java:689)
	at java.sql.DriverManager.getConnection(DriverManager.java:247)
	at com.company.test2.getConnection(test2.java:19)
	at com.company.test2.main(test2.java:30)

Process finished with exit code 0

糾結一番後,發現沒有mysql-connector-java的jar包,於是在項目裏創建一個lib目錄,將mysql-connector-java-5.1.47-bin.jar放進去,就成功了。

還有一種方法,即在C:\Program Files\Java\jdk1.8.0_201\jre\lib\ext目錄下放入mysql-connector-java-5.1.47-bin.jar
這種方法是在我求救之後一位老哥告訴我的:
在這裏插入圖片描述
感謝這位老哥

個人比較推薦第一種方法,在實際項目開發中不會對其他項目造成影響。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章