PowerDesigner 使用 JDBC 連線 MySQL 出現 Could not load class com.mysql.jdbc.Driver 錯誤的解決方案

早先在 PowerDesigner 中, 欲使用 JDBC 連線 MySQL 時, 當下不管怎麼設定, 總是出現 Non SQL Error : Could not load class com.mysql.jdbc.Drive 的錯誤, 於是只好放棄 JDBC 改用 ODBC 連線 MySQL. 之後只要在 PowerDesigner 中連線 MySQL 就一直都是使用 ODBC 的方式連線.

今天晚上收到同學詢問 PowerDesigner 使用 JDBC 的問題, 才又勾起自己也擱置這個問題一直沒有去解決它. 同學請我無論如何都要幫忙看看如何解決, 說公司政策不能使用 ODBC 連線 MySQL (有這種奇怪的公司?), 同學說他認識的人只有我有可能幫得上忙了 (嗯, 這不是我常用的伎倆嗎?).

MySQL Connector/J

首先, 我們必須先到 MySQL 官方網站下載並安裝 Connector/J, 目前最新的版本應該是 8.0.22, 安裝好了可以找一下它安裝的位置, 設定的時候會需要用到.

mysql-connector-java-x.y.z.jar 的位置

以目前安裝的 8,0.22 版本, Connector/J 是安裝於 C:\Program Files (x86)\MySQL\Connector J 8.0\ 這個目錄中.

JDBC 連線設定

PowerDesign 中設定 JDBC 連線的畫面如下圖所示:

PowerDesigner JDBC 連線設定

其中最重要的設定就是 JDBC driver jar files: , 它的設定值必須是我們早先安裝的 MySQL Connector/J 的 jar 檔案. 其他的設定就跟尋常的 JDBC 參數設定一樣, 沒有什麼特殊之處. 所有的設定值都就位之後, 我們就可以利用 Test Connection… 按鈕來測試是否可以連線成功.

這時候問題來了, 在 PowerDesigner 視窗下方的 General Output 訊息匡中出現了 Non SQL Error : Could not load class com.mysql.jdbc.Driver 錯誤訊息. 經過了這麼多年之後, 這個錯誤就像是個惱人的跟屁蟲一樣揮之不去.

JDBC driver class: 與 JDBC driver jar files: 這兩個設定的值再三確認過應該是正確的, 但是 Test Connection… 就是一直出現找不到類別的錯誤, 無奈之餘只好先把問題擱下, 離開 PowerDesigner 應用程式, 先讓子彈飛一下.

等到家人都就寢之後, 重新啟動 PowerDesinger 再來看看有哪些方法可以嘗試. 再進行新的嘗試之前, 想說再來 Test Connection… 一次, 沒想到這次測試居然就成功了. 把原先的設定打開來看, 跟先前的設定值一模一樣, 重複開關 PowerDesigner 也都可以正常連線, 這因果關係到底如何呢?

於是把 PowerDesinger 移除之後重新安裝, 讓設定重新回到預設的設定值. 然後再重新設定 JDBC 連線 MySQL, 我的老天鵝, Non SQL Error : Could not load class com.mysql.jdbc.Driver 的錯誤又再次出現. 接著, 結束 PowerDesigner 應用程式後, 再重新開啟 PowerDesinger 應用程式, 神奇地 JDBC 就可以連線 MySQL. 各位捧有們, 看到這裡知道問題在哪裡了嗎?

自己先前碰到這個問題, 一定沒有想到重開治百病這個藥方, 也可以用在 PowerDesigner 的 JDBC 設定上.

黑手筆記

要解決 Non SQL Error : Could not load class com.mysql.jdbc.Driver 的問題, MySQL Connector/J 驅動程式, PowerDesinger 的 JDBC 設定都準備好了之後, 如果還是一直出現這個問題, 可以試試看:

關閉/結束 PowerDesigner 應用程式, 再打開/啟動 PowerDesigner 應用程式

— shortie’s behind-the-scenes comment

看起來、讀起來都像是很瞎的文字, 但是卻是一個必須做的黑手作業.

參考資料

發佈留言

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料