Jackcess is an open-source Java library for reading from and writing to Microsoft Access databases (.mdb and .accdb).
Unlike JDBC-based solutions, Jackcess provides a direct, low-level API to manipulate Access files without the overhead of a database engine. It is the library powering UCanAccess.
Jackcess is not an application. There is no GUI. It's a library, intended for other developers to build Java applications.
-
Pure Java: 100% Java implementation. No native dependencies, no DLLs, no MS Access installation required.
-
Wide Version Support: Supports Access versions 2000, 2003, 2007, 2010, 2013, 2016, and 2019.
-
Read & Write: Create tables, insert rows, update data, and read complex schemas directly from the file.
-
Schema Manipulation: Programmatically create or modify table structures, indexes, and relationships.
-
Java Version: 11 or higher (LTS versions like Java 17 and 21 are fully supported and tested).
-
Optional Dependency:
- Apache POI — only needed for compound OLE attachment data; everything else has zero runtime dependencies.
-
Build Tool: Maven
-
Code Quality: Enforced via Checkstyle and PMD.
To use Jackcess in your project, add the following dependency.
<dependency>
<groupId>io.github.spannm</groupId>
<artifactId>jackcess</artifactId>
<version>5.1.6</version>
</dependency>implementation 'io.github.spannm:jackcess:5.1.6'Jackcess is a library for developers. Here is a quick look at the API for reading rows:
import io.github.spannm.jackcess.*;
import java.io.File;
try (Database db = DatabaseBuilder.open(new File("database.accdb"))) {
Table table = db.getTable("friends");
for (Row row : table) {
System.out.println("Friend Name: " + row.get("name"));
}
}This project is a modern fork of the original Jackcess project on SourceForge, originally created and maintained by James Ahlborn, specifically created to ensure compatibility with modern Java versions, minimize dependencies and to serve as the foundation for UCanAccess.
Beyond tracking the upstream project, this fork also offers:
- Zero dependencies besides optional Apache POI
- Ships with an extensive test suite (2,700+ tests, currently ~91% line coverage)
- Complete Javadoc on the core public API
- Has picked up a number of new smaller fixes since forking
Jackcess is licensed under the Apache License, Version 2.0.
| Enjoying Jackcess? Please leave a 🌟 to support the project! |