jOOQ VS JDBI

Compare jOOQ vs JDBI and see what are their differences.

JDBI

The Jdbi library provides convenient, idiomatic access to relational databases in Java and other JVM technologies such as Kotlin, Clojure or Scala. (by jdbi)
Stream - Scalable APIs for Chat, Feeds, Moderation, & Video.
Stream helps developers build engaging apps that scale to millions with performant and flexible Chat, Feeds, Moderation, and Video APIs and SDKs powered by a global edge network and enterprise-grade infrastructure.
getstream.io
featured
InfluxDB – Built for High-Performance Time Series Workloads
InfluxDB 3 OSS is now GA. Transform, enrich, and act on time series data directly in the database. Automate critical tasks and eliminate the need to move data externally. Download now.
www.influxdata.com
featured
jOOQ JDBI
100 29
6,443 2,062
0.9% 0.7%
9.8 9.2
1 day ago 8 days ago
Java Java
GNU General Public License v3.0 or later Apache 2.0 license
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

jOOQ

Posts with mentions or reviews of jOOQ. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2025-06-27.
  • A Lisp adventure on the calm waters of the dead C (2021)
    5 projects | news.ycombinator.com | 27 Jun 2025
    Two good examples of "builders to SQL" are

    https://www.jooq.org/

    and

    https://www.sqlalchemy.org/

    JooQ isn't everybody's taste but I use it for my job and I think it's great particularly in that you can reuse expressions and write generators for complex queries. We have a powerful search interface that combines full-text with other kinds of queries ("Is about topic T", "Data was collected between S and E") that is beautiful. I think it's funny how JooQ has that lispy f(a,b) style (no accident it is like ferocity) and how Sqlalchemy is really fluent and takes advantage of operator overloading.

  • Streaming data from RDBMS with jooq
    3 projects | dev.to | 23 Feb 2025
    Relational databases provide components such as cursors, which can be used to process large datasets while fetching only a limited number of rows at a time. With the help of jooq framework,we can take it a step further—leveraging cursors under the hood while seamlessly integrating with Java's Stream API. Let’s see it in action!
  • Systems ideas that sound good but almost never work
    1 project | news.ycombinator.com | 31 Dec 2024
    (1) DSLs work great sometimes. See https://www.jooq.org/

    (2) Elastic Load Balancer is a control loop responsive to workloads, that kind of thing is a commodity

    (3) Under-provisioning is rampant in most industries; see https://erikbern.com/2018/03/27/waiting-time-load-factor-and... and https://www.amazon.com/Goal-Process-Ongoing-Improvement/dp/0...

    (4) Anomaly detection is not inherently a problem of distributed systems like the others, but someone facing the problems they've been burned with might think they need it. Intellectually it's tough. The first algorithm I saw that felt halfway smart was https://scikit-learn.org/1.5/modules/outlier_detection.html#... which is sometimes a miracle and I had good luck using it on text with the CNN-based embeddings we had in 2018 but none at all w/ SBERT.

  • Net 9.0 LINQ Performance Improvements
    16 projects | news.ycombinator.com | 18 Oct 2024
    jOOQ would be one such example, https://www.jooq.org/

    Not that I use this, I am a myBatis person in what concerns database access in Java, and Dapper in .NET for that matter, not a big ORM fan.

  • Sqlc: Compile SQL to type-safe code
    15 projects | news.ycombinator.com | 8 Sep 2024
  • Serious flaws in SQL – Edgar F. Codd (1990)
    2 projects | news.ycombinator.com | 25 Apr 2024
    > 2. ORMs do not hide SQL nastiness.

    This is certainly true!

    I mean: ORMs are now well known to "make the easy queries slightly more easy, while making intermediate queries really hard and complex queries impossible".

    I think the are of ORMs is over. It simply did not deliver.

    If a book on SQL is --say-- 100 pages, a book on Hibernate is 400 pages. So much to learn just to make the easy queries slightly easier to type? Just not worth it.

    I prefer jooq any day over ORMs. And dont get me started over what tools like Hasuna have to offer.

    There are also some languages (forgot the names) that are SQL-done-right. Select in the back, more type safe, more logic, more in the same steps as the query gets executed. These need to be adopted by PG and MySQL and we're good to go. (IMHO)

    https://www.jooq.org/

    https://hasura.io/

  • ORMs are nice but they are the wrong abstraction
    7 projects | news.ycombinator.com | 1 Feb 2024
  • Do jOOQ DAOs support Kotlin Coroutines with R2DBC?
    1 project | /r/jOOQ | 21 Nov 2023
    See: https://github.com/jOOQ/jOOQ/issues/5916
  • Ask HN: What's your experience with stored procedures-heavy systems?
    1 project | news.ycombinator.com | 18 Aug 2023
  • SQL based language for the SQL impaired?
    1 project | /r/SQL | 10 Jul 2023

JDBI

Posts with mentions or reviews of JDBI. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-11-09.
  • JOOQ Is Not a Replacement for Hibernate. They Solve Different Problems
    1 project | dev.to | 11 Jan 2025
    Suppose we're developing an application that allows speakers to submit their talks to a conference (for simplicity, we'll only record the talk's title). Following the Transaction Script pattern, the method for submitting a talk might look like this (using JDBI for SQL):
  • Optimize Database Performance in Ruby on Rails and ActiveRecord
    2 projects | news.ycombinator.com | 9 Nov 2024
    _relational_ is the key word you're missing.

    ORMs map _objects_ to _relations_ (i.e. tables).

    "Unlike ORM frameworks, MyBatis does not map Java objects to database tables but Java methods to SQL statements." https://en.wikipedia.org/wiki/MyBatis

    "Jdbi is not an ORM. It is a convenience library to make Java database operations simpler and more pleasant to program than raw JDBC." https://jdbi.org/

    "While jOOQ is not a full fledged ORM (as in an object graph persistence framework), there is still some convenience available to avoid hand-writing boring SQL for every day CRUD. That's the UpdatableRecord API [which is only one part of it and you don't have to use it]" https://blog.jooq.org/how-to-use-jooqs-updatablerecord-for-c...

  • Permazen: Language-natural persistence to KV stores
    6 projects | news.ycombinator.com | 19 Sep 2023
    While this may work for greenfield applications, I don't see this working well for preexisting schemas. From their getting started page: "Database fields are automatically created for any abstract getter methods", which definitely scares me away since they seem to be relying on automatic field type conversions.

    I prefer to manage my schemas when I can and do type and DAO conversions via mapper classes in the very simple and elegant JDBI framework where you write SQL annotations above your DAO methods https://jdbi.org/#_declarative_api

    JDBI does wonders for wonky old schemas you've inherited, since joins etc work out of the box (just throw them in your annotations!) The annotations can also link to .SQL files for the big hairy queries.

    All these "do magic" frameworks (hibernate being one of the first) work in the simple cases but then fall apart whenever you need to do anything complex/not-prescribed. I end up having to dig into the internals of the framework to see what's going wrong which negates their whole value add.

  • Is ORM still an anti-pattern?
    15 projects | news.ycombinator.com | 27 Jun 2023
  • Sketch of a Post-ORM
    14 projects | news.ycombinator.com | 2 Jun 2023
    I found JDBi[1] to be a really nice balance between ORM and raw SQL. It gives me the flexibility I need but takes care of a lot of the boilerplate. It's almost like a third category.

    1. http://jdbi.org

  • Is it just me, or does the Spring Framework lead to hard-to-maintain code and confusion with annotations?
    7 projects | /r/java | 19 Apr 2023
  • Can someone tell me a good resource to learn and practice JDBC in java?
    1 project | /r/javahelp | 30 Mar 2023
    You could use something like jdbi or mybatis. It's not as ugly as raw jdbc and easier to use without all of the gunk from an ORM like hibernate.
  • Which JVM Language Would You Choose for a New Server-Side Project?
    2 projects | /r/Kotlin | 27 Mar 2023
    We use JDBI. Very simple and lightweight. It uses an object mapper not a full fledged ORM.
  • Why people don't like Java?
    5 projects | /r/programming | 27 Feb 2023
    Alternatively there are... hybrid solutions like Kotlin's https://github.com/JetBrains/Exposed or https://jdbi.org/ that don't quite... do all the heavy lifting for querying but allow you to sorta stitch queries together manually.
  • Top 5 Server-Side Frameworks for Kotlin in 2022: Micronaut
    8 projects | dev.to | 15 Jan 2023
    As seems that Micronaut does not include anything similar by default, we use JDBI and that SQL to retrieve one random greeting from the greetings table.

What are some alternatives?

When comparing jOOQ and JDBI you can also consider the following projects:

Querydsl - Unified Queries for Java

HikariCP - 光 HikariCP・A solid, high-performance, JDBC connection pool at last.

mybatis-plus - An powerful enhanced toolkit of MyBatis for simplify development

sql2o - sql2o is a small library, which makes it easy to convert the result of your sql-statements into objects. No resultset hacking required. Kind of like an orm, but without the sql-generation capabilities. Supports named parameters.

Stream - Scalable APIs for Chat, Feeds, Moderation, & Video.
Stream helps developers build engaging apps that scale to millions with performant and flexible Chat, Feeds, Moderation, and Video APIs and SDKs powered by a global edge network and enterprise-grade infrastructure.
getstream.io
featured
InfluxDB – Built for High-Performance Time Series Workloads
InfluxDB 3 OSS is now GA. Transform, enrich, and act on time series data directly in the database. Automate critical tasks and eliminate the need to move data externally. Download now.
www.influxdata.com
featured

Did you know that Java is
the 8th most popular programming language
based on number of references?