整理 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 自動關閉 |
net.sf.ucanaccess:ucanaccessjdbc:ucanaccess://path/to/db.mdb註:本範例為教學用途,新專案建議採用 UCanAccess 或遷移至 SQLite/MySQL/PostgreSQL 等現代資料庫。