java.lang.ClassNotFoundException: com.mysql.jdbc.Driver 處理

Photo by Jerin J on Unsplash

java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
顧名思義,就是找不到 com.mysql.jdbc.Driver
明明專案有在 build path 中導入驅動 jar 包,在 Java 程式中測試也都沒問題
但到了網頁上測試卻跳出了這項 exception

!忘了截圖!
在網頁中跳出的錯誤代碼是 500,乍看之下是 Dao 的 PreparedStatement ps = connection.prepareStatement(sql); 出現 NullPointerException,回到 Eclipse 看 Console 中的完整訊息才知道是找不到 Driver
Console 真的很重要!


忙了老半天終於找到解方,來記錄一下在網路上找到的方法~


1. 確認驅動 jar 包完好
網路上的前輩建議,盡量下載壓縮檔(例如 zip)
直接下載 jar 檔容易遇到檔案損毀問題,壓縮檔比較不容易有資料遺失的狀況

2. 若 MySQL 與 Eclipse 裝在不同電腦上,要確認程式碼中連線 url 的 ip 位址是否正確

3. 確認是經由 build path  - add external jars 導入驅動包(當前使用的檔名為 mysql-connector-java-5.1.49-bin.jar)
*此點適用於 Java 程式

4. 若是 Web 程式,因 Eclipse 在執行 Class.forName("com.mysql.jdbc.Driver"); 時並不會查找字符串,不會去查找驅動(這點我還沒有很理解),所以要另外將 mysql-connector-java-5.1.49-bin.jar 檔案複製到 Tomcat 中的 lib 資料夾裡

5. 若以上幾個方法都無法解決,就將 mysql-connector-java-5.1.49-bin.jar 放到 classpath 下


最後使用第四個方法解決了!
歡欣鼓舞可喜可賀~繼續往下一關邁進😻





留言