jDBI provides a convenience interface for SQL operations in Java. It is not intended as an abstraction layer, but rather a library which makes the common things easy and the hard things possible, to paraphrase Larry Wall.

Documentation is at http://jdbi.org/

There is a mailing list at http://groups.google.com/group/jdbi

Code Quality Rank: L4
Programming language: Java
License: Apache 2.0 license
Tags: Database    
Latest version: v3.30.0

JDBI alternatives and similar libraries

Based on the "Database" category.
Alternatively, view JDBI alternatives based on common mentions on social networks and blogs.

Do you think we are missing an alternative of JDBI or a related project?

Add another 'Database' Library


[Jdbi Logo](docs/src/adoc/images/logo.svg)

CI Build with tests | Language grade: Java

The Jdbi library provides convenient, idiomatic access to relational databases in Java.

Jdbi is built on top of JDBC. If your database has a JDBC driver, you can use Jdbi with it.


Jdbi 3 requires Java 8 or better to run. Jdbi 3 requires Java 11 or better to compile.

We run CI tests against Java 11 and 17 and still support Java 8 for testing on a best-effort basis.

Java 8 compatibility

Java 8 is considered deprecated. While Jdbi does not (yet) have a specific date to drop support, please chart your path forward to a supported JDK! We recommend running the latest LTS JDK.

Jdbi 3 is compiled to Java 8 byte code and is considered stable on Java 8.

However, we now require Java 11 or better to compile as the tool chain no longer runs on Java 8.

We run CI tests on Java 8 on a best effort basis as some of the tests require Java 11+ only dependencies.

NOTE: to run on Java 8, you may need to manage the caffeine dependency back to the latest 2.x release. 3.x is necessary for newer JDKs but does not run on 8.


Jdbi is built with Apache Maven, requiring version 3.6.0 or newer.

$ ./mvnw clean install

The unit tests use Postgres and H2 databases (the tests will spin up temporary database servers as needed).

Docker requirements

For a full release build, docker or a docker compatible environment must be available. A small number of tests (those supporting the OTJ postgres plugin) use testcontainers which in turn requires docker.

Local builds can use -Dno-docker on the command line to skip these tests.

Supported configurations are

  • Docker Desktop on MacOS
  • docker-ce on Linux
  • podman 3 or better on Linux.

For podman, the podman socket must be activated (see https://stackoverflow.com/questions/71549856/testcontainers-with-podman-in-java-tests) for details. SELinux sometimes interferes with testcontainers, if SELinux is active, make sure that there is an exception configured.


Please read CONTRIBUTING.md for instructions to set up your development environment to build Jdbi.


We use SemVer for versioning.


This project is licensed under the Apache 2.0 license.

Project Members

  • Brian McCallister (@brianm) - Project Founder
  • Steven Schlansker (@stevenschlansker)
  • Henning Schmiedehausen (@hgschmie)
  • Matthew Hall (@qualidafial)
  • Artem Prigoda (@arteam)
  • Marnick L'Eau (@TheRealMarnes)

Special Thanks

  • Alex Harin (@aharin) - Kotlin plugins.
  • Ali Shakiba (@shakiba) - JPA plugin
  • @alwins0n - Vavr plugin.
  • Fred Deschenes (@FredDeschenes) - Kotlin unchecked extensions for Jdbi functions. @BindFields, @BindMethods annotations.

*Note that all licence references and agreements mentioned in the JDBI README section above are relevant to that project's source code only.