首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

Java 連接 Access 資料庫完整步驟(JDBC-ODBC Bridge 方案)

     編輯:Java 相關知識

⚠️ 重要提示

JDBC-ODBC Bridge (sun.jdbc.odbc.JdbcOdbcDriver) 已在 Java 8 移除。現代專案請改用:

  • UCanAccess:純 Java 實作,無需 ODBC 設定,Maven 坐標 net.sf.ucanaccess:ucanaccess:5.0.1。
  • Jackcess:底層存取庫,UCanAccess 依賴它。

傳統 JDBC-ODBC 步驟(僅供舊版 Java 6/7 維護參考)

  1. 建立 .mdb/.accdb 檔案:Access 建立資料表。
  2. 設定系統 DSN:
    1. 控制台 → 系統管理工具 → ODBC 資料來源 (32/64-bit 需與 JVM 位數一致)。
    2. 系統 DSN → 新增 → Microsoft Access Driver (*.mdb, *.accdb)。
    3. 資料來源名稱 (DSN) 如 MyAccessDSN,選擇資料庫檔案路徑。
  3. Java 連線程式碼:
    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
    String url = "jdbc:odbc:MyAccessDSN"; // 使用 DSN 名稱
    // 或無 DSN 直連:
    // String url = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=C:/data/test.mdb";
    Connection conn = DriverManager.getConnection(url, "", "");
    Statement stmt = conn.createStatement();
    ResultSet rs = stmt.executeQuery("SELECT * FROM MyTable");
    

現代 UCanAccess 範例(推薦)


    net.sf.ucanaccess
    ucanaccess
    5.0.1


// 程式碼
String url = "jdbc:ucanaccess://C:/data/test.accdb";
try (Connection conn = DriverManager.getConnection(url);
     Statement stmt = conn.createStatement();
     ResultSet rs = stmt.executeQuery("SELECT * FROM MyTable")) {
    while (rs.next()) {
        System.out.println(rs.getString("ColumnName"));
    }
}

常見坑點

  • 32-bit/64-bit 不匹配:JVM、ODBC 驅動、Access 引擎三者位數必須一致。
  • 檔案鎖定:Access 開啟時可能獨佔鎖定,Java 連線失敗;關閉 Access 或設定共享模式。
  • 編碼問題:舊版 .mdb 可能需 charSet=Cp950 參數。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved