UCanAccess is a high-performance, open-source Java JDBC driver that gives you seamless access to Microsoft Access databases (.mdb and .accdb) without needing any native Windows libraries (R-I-P OdbcJdbcBridge 🪦).
Whether you are building a modern Spring Boot application or using classic tools like LibreOffice or SQuirreL SQL, UCanAccess provides a reliable, pure-Java way to read and write your data.
-
Pure Java Power: Zero native dependencies. Runs anywhere Java 11+ is supported.
-
Drop-in Replacement: Fully compatible with previous UCanAccess versions.
-
Modern Core: Built on top of the latest Jackcess 5.1.2 and HSQLDB 2.7.4 for maximum stability and security.
-
Comprehensive SQL Support: Supports SELECT, INSERT, UPDATE, DELETE, and even complex DDL operations like
ALTER TABLE. -
Access-like Logic: Includes built-in Access functions (like
IIf,Nz, and financial functions likePMTorPV). -
Security Conscious: Regularly updated to be free of known CVEs.
-
Java Version: 11 or higher (LTS versions like Java 17 and 21 are fully supported and tested).
-
Build Tool: Maven
-
Main Dependencies:
To use UCanAccess in your project, add the following dependency.
<dependency>
<groupId>io.github.spannm</groupId>
<artifactId>ucanaccess</artifactId>
<version>5.1.5</version>
</dependency>implementation 'io.github.spannm:ucanaccess:5.1.5'implementation("io.github.spannm:ucanaccess:5.1.5")
Connecting to your database is as simple as:
import java.sql.Connection;
import java.sql.DriverManager;
String url = "jdbc:ucanaccess://C:/path/to/your/database.accdb";
try (Connection conn = DriverManager.getConnection(url)) {
// your code here
}
The original project (developed by Marco Amadei and Gord Thompson) was the gold standard for Access connectivity but went quiet in 2020. As a long-time contributor and Java enthusiast, I decided to give UCanAccess a new home.
My goal is to keep this essential tool alive, maintain a high test coverage (JUnit 5), and ensure it meets modern Clean Code and SOLID standards.
Got a bug to fix or a feature to add?
- Check out the Issues
- Fork the Repo
- Submit a Pull Request
Note: Please ensure your code follows the project's quality standards (Checkstyle, PMD are enforced in the build).
UCanAccess is licensed under the Apache License, Version 2.0.
|
Enjoying UCanAccess? Please leave a 🌟 to support the project! Your stars help to keep the bridge between Java and Access alive and visible. |