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

Java 連接 Access 資料庫:JDBC-ODBC Bridge 實作範例

     編輯:Java 相關知識

前言

整理 Java 連接 Microsoft Access 的經典範例,作為復習筆記。雖然 JDBC-ODBC Bridge 在 Java 8 後移除,但在舊系統維護、UCanAccess 遷移前仍具參考價值。

完整程式碼

import java.sql.*;

public class DbAccess {
    public static void main(String[] args) throws Exception {
        // 載入 JDBC-ODBC Bridge 驅動
        Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

        // 無 DSN 連接字串 (推薦)
        String dbUrl = "jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=Mobile.mdb";

        // 有 DSN 連接字串 (需預先在控制台建立 ODBC 資料來源)
        // String dbUrl = "jdbc:odbc:odbcName";

        try (Connection conn = DriverManager.getConnection(dbUrl);
             Statement stmt = conn.createStatement();
             ResultSet rs = stmt.executeQuery("SELECT TOP 20 * FROM MobileSection")) {

            System.out.println("號段\t地區\t類型\t省份\t區號");
            while (rs.next()) {
                System.out.println(rs.getString(1) + "\t" +
                                   rs.getString(2) + "\t" +
                                   rs.getString(3) + "\t" +
                                   rs.getString(4) + "\t" +
                                   rs.getString(5));
            }
        } // try-with-resources 自動關閉連線
    }
}

執行結果範例

號段    地區    類型            省份    區號
1300566 茂名    廣東聯通130卡   廣東    0668
1300567 茂名    廣東聯通007卡   廣東    0668
1300568 茂名    廣東聯通007卡   廣東    0668
1300569 珠海    廣東聯通130卡   廣東    0756
1300570 惠州    廣東聯通130卡   廣東    0752
...

關鍵點說明

項目說明
驅動類別sun.jdbc.odbc.JdbcOdbcDriver (JDK 內建,Java 8 後移除)
無 DSN 連接直接指定驅動名稱與 .mdb 檔案路徑,部署簡單
有 DSN 連接需在 Windows「資料來源 (ODBC)」建立系統/使用者 DSN
SQL 方言Access 使用 TOP n 限制筆數 (非標準 SQL)
資源釋放範例使用 Java 7 try-with-resources 自動關閉

現代替代方案 (Java 8+)

  • UCanAccess:純 Java 實作,無需 ODBC,Maven 座標 net.sf.ucanaccess:ucanaccess
  • Jackcess:底層存取庫,UCanAccess 依賴項
  • 連接字串範例:jdbc:ucanaccess://path/to/db.mdb

註:本範例為教學用途,新專案建議採用 UCanAccess 或遷移至 SQLite/MySQL/PostgreSQL 等現代資料庫。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved