在 Windows 環境部署 JSP 伺服器且資料量較小時,Access 是輕量級選擇。傳統做法需在 ODBC 管理員建立系統 DSN,本文提供 免 DSN 直連 的 JDBC 連線字串寫法,同樣適用於 FoxPro 等支援 ODBC 的桌面資料庫。
jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=books.mdb
driver={...} 指定 ODBC 驅動程式名稱(需與系統安裝的驅動完全一致);DBQ= 指定 .mdb 檔案完整或相對路徑。import java.sql.*;
public class AccessDirect {
public static void main(String[] args) {
try {
String url = "jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=books.mdb";
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection conn = DriverManager.getConnection(url);
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("select * from books");
if (rs.next()) {
System.out.println(rs.getString("簡介"));
}
} catch (Exception e) {
System.out.println(e);
}
}
}
| 優點 | 缺點 |
|---|---|
| 部署簡單,無需在目標機器設定 DSN | 效能較連線池/原生驅動差 |
| 跨平台部署時減少環境設定步驟 | JDBC-ODBC 橋接器已在 Java 8 移除,現代專案建議用 UCanAccess 或 Jackcess |
| 程式碼可攜性高,連線字串內含所有資訊 | 僅支援 Windows 平台(需 ODBC 驅動) |
新專案請直接採用 UCanAccess(純 Java 實作,支援 .mdb/.accdb,無需 Access 安裝),Maven 依賴:
<dependency>
<groupId>net.sf.ucanaccess</groupId>
<artifactId>ucanaccess</artifactId>
<version>5.0.1</version>
</dependency>
連線字串改為:jdbc:ucanaccess://path/to/books.mdb。