2014年4月22日 星期二

JDK 8 不支援 ODBC:JDBC

我辦公桌的電腦上回升 WIN7 時, 跳過了某個環節, 導致 OFFICE 竟然無法通過認證, 向 MIS 求救也是束手無策, 最後只好重灌一途. 所以今天又花了一整天在搞電腦, 真是浪費時間, 而且 Java, Python 等開發環境又要重新安裝, 調整設定最傷腦筋.

重裝 JDK 時想說試試看 JDK 8 吧, 之前發現 XP 無法安裝 JDK8 (不再支援), WIN7 沒有問題, 但是安裝好後執行 ACCESS 資料庫存取, 卻出現 NullPointer (cannot find odbc-jdbc driver) 的錯誤, 找了一下網路, 原來 JDK 8 已不支援 ODBC-JDBC 驅動程式, 詳見 :

Manipulating an Access database from Java without ODBC

原因主要是 :
  1. 以 ODBC 存取 ACCESS 資料庫時, 當處理的 UNICODE 超過 \u00ff 時可能會出錯.
  2. ACCESS ODBC 驅動程式只能用在 WINDOWS, 而且分成 32/64 位元, 很麻煩.
第一項我沒用過, 但處理中文從沒出現問題. 第二項就是我之前遇到的麻煩, 如果在 64 位元電腦上安裝 64 位元的 JDK 7, 就無法用 ODBC-JDBC 連線 ACCESS 資料庫; 必須要用 32 位元的 JDK 7 才行, 參見 :

# Java 程式連線 ACCESS 資料庫問題

所以只好刪除 JDK 8, 重新下載 JDK 7 (X86) 安裝後, 果然就 OK 了. 看來若要繼續使用 ACCESS 資料庫, 則 X86 版的 JDK7U55 與 JRE 要保存起來比較好.

2016-07-26 補充 :

今天找到這篇, 以後有時間回頭玩 Java 時再試試看 :

# Connecting to MS Access Files via JDBC in 64-bit Java


沒有留言 :