- Notifications
You must be signed in to change notification settings - Fork342
The Jdbi library provides convenient, idiomatic access to relational databases in Java and other JVM technologies such as Kotlin, Clojure or Scala.
License
jdbi/jdbi
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
The Jdbi library provides convenient, idiomatic access to relational databases in Java and other JVM technologies such as Kotlin, Clojure or Scala.
Jdbi is built on top of JDBC. If your database has a JDBC driver, you can use Jdbi with it.
Also check out the code examples in theExamples module.
Jdbi requires Java 11 or better to run.
We run CI tests against Java 11, 17 and 21.
Java 8, 9 and 10 are supported by any Jdbi version before3.40.0.
Jdbi requires a JDK version 17 or better to build. We enforce the latest LTS (currently Java 21) for releases.
Jdbi is "batteries included" and uses theApache Maven Wrapper. If an external Maven installation is used, Apache Maven 3.9 or later is required. Using themake
targets requires GNU make.
All build tasks are organized asmake
targets.
Build the code an install it into the local repository:
$ make install
Runningmake
ormake help
displays all available build targets with a short explanation. Some of the goals will require project membership privileges. TheCONTRIBUTING.md document contains a list of all supported targets.
To add command line parameters to the maven executions from the Makefile, set theMAVEN_ARGS
variable:
% MAVEN_ARGS="-B -fae" make install
Runningmake tests
runs all unit and integration tests.
Some tests use Postgres and H2 databases (the tests will spin up temporary database servers as needed). Most modern OS (Windows, MacOS, Linux) and host architecture (x86_64, aarch64) should work.
For a full release build, docker or a docker compatible environmentmust be available. A small number of tests use testcontainers which inturn requires docker.
make install-nodocker
skips the tests when building and installing Jdbi locally.make tests-nodocker
skips the tests when only running tests.
Supported configurations are
- Docker Desktop on MacOS
- docker-ce on Linux
- podman 3 or better on Linux and MacOS
Other docker installations such asColima may work but are untested and unsupported.
For podman on Linux, the podman socket must be activated (seehttps://stackoverflow.com/questions/71549856/testcontainers-with-podman-in-java-tests)for details. SELinux sometimes interferes with testcontainers ifSELinux is active; make sure that there is an exception configured.
For podman on MacOS, it is necessary to set theDOCKER_HOST
environment variable correctly.
Please readCONTRIBUTING.mdfor instructions to set up your development environment to build Jdbi.
Jdbi usesSemVer to version its public API.
This project is licensed under theApache 2.0 license.
- Brian McCallister (@brianm) - Project Founder
- Steven Schlansker (@stevenschlansker)
- Henning Schmiedehausen (@hgschmie)
- Artem Prigoda (@arteam)
- 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.
About
The Jdbi library provides convenient, idiomatic access to relational databases in Java and other JVM technologies such as Kotlin, Clojure or Scala.