杰瑞科技汇

Java如何连接Access数据库?

Java 访问 Access 数据库指南

在 Java 中访问 Access 数据库,通常有两种主要方法:使用 JDBC-ODBC 桥接(已废弃)或使用 UCanAccess 等纯 Java JDBC 驱动程序,以下是详细步骤:

Java如何连接Access数据库?-图1
(图片来源网络,侵删)

使用 UCanAccess(推荐)

UCanAccess 是一个纯 Java JDBC 驱动程序,无需安装 ODBC 驱动,适合现代 Java 应用。

添加依赖

如果你使用 Maven,在 pom.xml 中添加:

<dependency>
    <groupId>com.healthmarketscience.jackcess</groupId>
    <artifactId>jackcess</artifactId>
    <version>3.0.1</version>
</dependency>
<dependency>
    <groupId>net.ucanaccess</groupId>
    <artifactId>ucanaccess</artifactId>
    <version>5.0.1</version>
</dependency>

连接代码示例

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
public class AccessDBExample {
    public static void main(String[] args) {
        String dbURL = "jdbc:ucanaccess://C:/path/to/your/database.accdb";
        try (Connection conn = DriverManager.getConnection(dbURL);
             Statement stmt = conn.createStatement();
             ResultSet rs = stmt.executeQuery("SELECT * FROM YourTableName")) {
            while (rs.next()) {
                // 假设表有两列:ID 和 Name
                System.out.println("ID: " + rs.getInt("ID") + 
                                 ", Name: " + rs.getString("Name"));
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

使用 JDBC-ODBC 桥接(已废弃)

注意:此方法已弃用,仅适用于旧代码维护。

配置 ODBC 数据源

  1. 在 Windows 控制面板中打开"ODBC 数据源管理器"
  2. 添加一个"用户 DSN"或"系统 DSN",指向你的 Access 数据库
  3. 给数据源命名(如 "MyAccessDB")

连接代码示例

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
public class AccessODBCExample {
    public static void main(String[] args) {
        String dbURL = "jdbc:odbc:MyAccessDB";
        try {
            Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
            Connection conn = DriverManager.getConnection(dbURL, "", "");
            Statement stmt = conn.createStatement();
            ResultSet rs = stmt.executeQuery("SELECT * FROM YourTableName");
            while (rs.next()) {
                System.out.println("ID: " + rs.getInt("ID") + 
                                 ", Name: " + rs.getString("Name"));
            }
            rs.close();
            stmt.close();
            conn.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

常见问题解决

  1. 路径问题:确保数据库路径正确,使用绝对路径更可靠
  2. 权限问题:确保 Java 进程有访问数据库文件的权限
  3. 数据库锁定:Access 数据库被独占访问时会锁定,确保没有其他程序打开它
  4. JDBC 版本:UCanAccess 有版本要求,确保与你的 Java 版本兼容

高级操作

插入数据

String sql = "INSERT INTO YourTableName (ID, Name) VALUES (1, 'John Doe')";
stmt.executeUpdate(sql);

更新数据

String sql = "UPDATE YourTableName SET Name = 'Jane Doe' WHERE ID = 1";
stmt.executeUpdate(sql);

删除数据

String sql = "DELETE FROM YourTableName WHERE ID = 1";
stmt.executeUpdate(sql);

注意事项

  1. Access 数据库不适合高并发应用
  2. 对于大型数据库,考虑迁移到更强大的数据库系统
  3. 始终使用 try-with-resources 或 finally 块确保资源释放

UCanAccess 是目前访问 Access 数据库的最佳选择,它提供了更好的兼容性和性能。

Java如何连接Access数据库?-图2
(图片来源网络,侵删)
Java如何连接Access数据库?-图3
(图片来源网络,侵删)
分享:
扫描分享到社交APP
上一篇
下一篇