在早期的 Java 開發中,連接 Microsoft Access 資料庫常透過 JDBC-ODBC 橋接器(sun.jdbc.odbc.JdbcOdbcDriver)實現。雖然這種方式在 Java 8 以前可行,但 Oracle 已在 Java 8 中移除該驅動,現代專案建議改用 UCanAccess 等純 Java 驅動。本文將示範傳統寫法並說明遷移方向。
以下程式碼展示如何使用 JDBC-ODBC 橋接器直接連接 .mdb 檔案:
import java.sql.*;
public class AccessDemo {
public static void main(String[] args) throws Exception {
// JDBC-ODBC 連線字串
String url = "jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=D:\\projects\\demo.mdb";
// 載入驅動(Java 8 以前可用)
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
try (Connection conn = DriverManager.getConnection(url);
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("SELECT * FROM mcp_swty_player")) {
while (rs.next()) {
System.out.println(rs.getString("player_mobile"));
}
}
}
}
DBQ 指定 Access 檔案完整路徑,雙反斜線需跳脫。sun.jdbc.odbc.JdbcOdbcDriver 屬於 JDK 內建,但已於 Java 8 移除。若專案運行於 Java 8 或更新版本,請採用 UCanAccess:
ucanaccess-x.x.x.jar 及其依賴(jackcess、commons-lang、commons-logging、hsqldb)。String url = "jdbc:ucanaccess://D:/projects/demo.mdb";
Class.forName("net.ucanaccess.jdbc.UcanaccessDriver");
// 後續操作與標準 JDBC 相同
JDBC-ODBC 橋接器屬於歷史產物,新專案請直接使用 UCanAccess,可支援 .mdb 與 .accdb 格式,且無需安裝 ODBC 驅動,跨平台相容性更佳。