DEV.co
Open-Source Databases · jdbi

jdbi

Jdbi is a lightweight Java library that makes it easier to work with relational databases by wrapping JDBC with a more convenient API. It supports multiple JVM languages and integrates with popular frameworks like Spring, Guice, and Jackson.

Source: GitHub — github.com/jdbi/jdbi
2.1k
GitHub stars
364
Forks
Java
Primary language
Apache-2.0
License (OSI-approved)

Key facts

Objective fields from the source. Values we can't verify are shown as “Unknown” rather than guessed.

FieldValue
Repositoryjdbi/jdbi
Ownerjdbi
Primary languageJava
LicenseApache-2.0 — OSI-approved
Stars2.1k
Forks364
Open issues147
Latest releasev3.54.0 (2026-07-01)
Last updated2026-07-01
Sourcehttps://github.com/jdbi/jdbi

What jdbi is

Jdbi provides an idiomatic SQL abstraction layer on top of JDBC, supporting prepared statements, result mapping, and fluent query building. It requires Java 17+ (v3.50.0+), includes plugins for Kotlin, Immutables, Jackson, and other libraries, and is tested against multiple database backends via testcontainers.

Quickstart

Get the jdbi source

Clone the repository and explore it locally.

terminalbash
git clone https://github.com/jdbi/jdbi.gitcd jdbi# follow the project's README for install & configuration

Need it deployed, integrated, or customized instead? DEV.co ships production installs.

Best use cases

Lightweight Database Access Layer

Teams needing convenient JDBC abstraction without the overhead of a full ORM like Hibernate. Jdbi's small footprint is suitable for microservices and modular applications.

Multi-Language JVM Projects

Projects using Kotlin, Clojure, or Scala alongside Java. Built-in support and plugin ecosystem reduce friction when sharing database access code across JVM languages.

Complex SQL + Custom Mappings

Applications requiring fine-grained control over SQL and result mapping. Jdbi's plugin architecture (Jackson, Immutables, Guava, JodaTime, vavr) allows custom type and data handling without boilerplate.

Implementation considerations

  • Java 17+ is mandatory for v3.50.0 or later; plan JDK upgrade if still on Java 11 or 16.
  • Core library is small but plugin ecosystem (Spring, Guice, Kotlin, Jackson) should be evaluated against your actual dependencies to avoid version conflicts.
  • Result mapping requires explicit configuration or annotation (Jackson, Immutables integration); default behavior is minimal, requiring developer intent.
  • Requires a JDBC driver for your target database; Jdbi itself is driver-agnostic but must be paired with the appropriate connector.
  • Testing involves spinning up live database instances (H2, PostgreSQL, or via testcontainers); ensure CI/CD pipeline supports Docker or podman.

When to avoid it — and what to weigh

  • Require Java 8–16 Support — Jdbi v3.50.0+ mandates Java 17 or later. Projects locked to earlier Java versions must use pre-3.50.0 releases, which are no longer actively maintained.
  • Need Advanced ORM Features — If your application requires complex entity relationships, automatic schema generation, or lazy loading, Hibername or JPA is a better fit. Jdbi remains a SQL-focused, lower-level abstraction.
  • No Docker / Testcontainers Infrastructure — Full test coverage (including database-specific tests) requires Docker or podman. Building and testing without containerization requires skipping significant test suites and may mask compatibility issues.
  • Unfamiliar with JDBC and SQL — Jdbi assumes SQL literacy and JDBC familiarity. It streamlines but does not eliminate SQL writing; teams new to relational databases should consider higher-level ORMs.

License & commercial use

Licensed under Apache License 2.0, a permissive OSI-approved license permitting commercial use, modification, and distribution with minimal restrictions.

Apache 2.0 permits commercial use without licensing fees. No proprietary or copyleft restrictions apply. Review included dependencies for their own licenses if bundling or modifying Jdbi for distribution. No warranty or liability guarantees are provided.

DEV.co evaluation signals

Editorial assessment — not user reviews. Directional, with an explicit confidence level.

SignalAssessment
MaintenanceActive
DocumentationAdequate
License clarityClear
Deployment complexityLow
DEV.co fitGood
Assessment confidenceHigh
Security considerations

Jdbi wraps JDBC and does not implement cryptography, authentication, or network security itself. Security posture depends on JDBC driver, database server configuration, and application-level credential management. SonarCloud integration indicates ongoing code quality monitoring. No public security advisories or known CVEs mentioned; standard JDBC connection handling practices (credential injection, connection pooling) should be followed.

Alternatives to consider

Hibernate / JPA

Full-featured ORM with lazy loading, relationship management, and schema generation. Heavier footprint and steeper learning curve; suitable for complex domain models.

jOOQ

Type-safe SQL query builder with code generation. More expressive for complex SQL; commercial license available but open-source variant exists. Better for SQL-heavy applications requiring DSL safety.

MyBatis

SQL-first mapper with XML or annotation-based configuration. Similar philosophy to Jdbi (SQL control) but heavier configuration; widely adopted in enterprise environments.

Software development agency

Build on jdbi with DEV.co software developers

Jdbi is ideal for teams building microservices or multi-language JVM applications. We help you integrate Jdbi into your architecture, plan Java upgrades, and optimize data access patterns. Let's talk.

Talk to DEV.co

Related open-source tools

Surfaced by semantic similarity across the DEV.co open-source index.

Related on DEV.co

Explore the category and the services that help you build with it.

jdbi FAQ

Does Jdbi work with my database?
If your database has a JDBC driver, Jdbi can work with it. Core tests run against PostgreSQL; testcontainers tests cover a broader set. Consult README and GitHub discussions for your specific database.
Can I use Jdbi with Spring Boot?
Yes. Spring Framework integration is tested against current and two prior stable versions. No official Spring Boot starter is mentioned in the README; check Spring Data JDBC or community integrations for Boot-specific setup.
What Java versions are supported?
Jdbi v3.50.0 and later require Java 17+. Earlier versions support Java 8, 9, 10 (up to v3.39.x) and Java 11 (up to v3.49.x). Build requires Java 25 LTS.
Is there commercial support?
Not mentioned in README or official channels. Support is community-driven via GitHub discussions, mailing list, and Stack Overflow. Spotify FOSS fund provides project backing but not direct vendor support.

Software developers & web developers for hire

From first prototype to production, DEV.co delivers software development services around tools like jdbi. Our software development agency staffs experienced software developers and web developers for custom software development, web development, integrations, and ongoing support across open-source databases and beyond.

Ready to Streamline Your Database Layer?

Jdbi is ideal for teams building microservices or multi-language JVM applications. We help you integrate Jdbi into your architecture, plan Java upgrades, and optimize data access patterns. Let's talk.