Skip to content

Open-source pure Java JDBC driver for Microsoft Access databases. Allows Java developers and client programs (e.g. OpenOffice, LibreOffice, SQuirreL) to read and write various versions of Access databases.

License

Notifications You must be signed in to change notification settings

spannm/ucanaccess

Repository files navigation

Maven Central Version Maven Central Last Update GitHub Actions Workflow Status GitHub Actions Workflow Status GitHub Repo stars

UCanAccess

The modern bridge between Java and Microsoft Access

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.

────────────────────

✨ Key Features

  • 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 like PMT or PV).

  • Security Conscious: Regularly updated to be free of known CVEs.

 

🛠 Tech Stack & Requirements

 

📦 Installation

To use UCanAccess in your project, add the following dependency.

Maven (pom.xml)

<dependency>
    <groupId>io.github.spannm</groupId>
    <artifactId>ucanaccess</artifactId>
    <version>5.1.5</version>
</dependency>

Gradle (Groovy / build.gradle)

implementation 'io.github.spannm:ucanaccess:5.1.5'

Gradle (Kotlin DSL / build.gradle.kts)

implementation("io.github.spannm:ucanaccess:5.1.5")

 

🚦 Quick Start

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
}

 

❤️ Why this Fork?

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.

 

🤝 Contributions welcome!

Got a bug to fix or a feature to add?

  1. Check out the Issues
  2. Fork the Repo
  3. Submit a Pull Request

Note: Please ensure your code follows the project's quality standards (Checkstyle, PMD are enforced in the build).

───────────────

⚖️ License

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.

About

Open-source pure Java JDBC driver for Microsoft Access databases. Allows Java developers and client programs (e.g. OpenOffice, LibreOffice, SQuirreL) to read and write various versions of Access databases.

Topics

Resources

License

Stars

Watchers

Forks

Contributors 7