Ktorm VS jOOQ

Compare Ktorm vs jOOQ and see what are their differences.


A lightweight ORM framework for Kotlin with strong-typed SQL DSL and sequence APIs. (by kotlin-orm)
Our great sponsors
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • WorkOS - The modern identity platform for B2B SaaS
  • SaaSHub - Software Alternatives and Reviews
Ktorm jOOQ
5 93
1,938 5,833
1.3% 0.5%
0.0 9.6
4 months ago 10 days ago
Kotlin Java
Apache License 2.0 GNU General Public License v3.0 or later
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.


Posts with mentions or reviews of Ktorm. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-03-22.


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 2024-02-01.
  • ORMs are nice but they are the wrong abstraction
    7 projects | news.ycombinator.com | 1 Feb 2024
  • Is ORM still an anti-pattern?
    15 projects | news.ycombinator.com | 27 Jun 2023
    > I've been doing ORM on Java since Hibernate was new, and it has always sucked.

    Have you ever looked at something like myBatis? In particular, the XML mappers: https://mybatis.org/mybatis-3/dynamic-sql.html

    Looking back, I actually quite liked it - you had conditionals and ability to build queries dynamically (including snippets, doing loops etc.), while still writing mostly SQL with a bit of XML DSL around it, which didn't suck as much as one might imagine. The only problem was that there was still writing some boilerplate, which I wasn't the biggest fan of.

    Hibernate always felt like walking across a bridge that might collapse at any moment (one eager fetch away from killing the performance, or having some obscure issue related to the entity mappings), however I liked tooling that let you point towards your database and get a local set of entities mapped automatically, even though codegen also used to have some issues occasionally (e.g. date types).

    That said, there's also projects like jOOQ which had a more code centric approach, although I recall it being slightly awkward to use in practice: https://www.jooq.org/ (and the autocomplete killed the performance in some IDEs because of all the possible method signatures)

    More recently, when working on a Java project, I opted for JDBI3, which felt reasonably close to what you're describing, at the expense of not being able to build dynamic queries as easily, as it was with myBatis: https://jdbi.org/

    That said, with the multi-line string support we have in Java now, it was rather pleasant regardless: https://blog.kronis.dev/tutorials/2-4-pidgeot-a-system-for-m...

    I don't think there's a silver bullet out there, everything from lightweight ORMs, to heavy ORMs like Hibernate, or even writing pure SQL has drawbacks. You just have to make the tradeoffs that will see you being successful in your particular project.

  • SQL-Parsing
    2 projects | /r/SQL | 25 Jun 2023
    Have a look at jooq - I know this has been used to rewrite SQL from one dialect to another, so it MUST be capable of collating code activity metrics. Look here. Otherwise, you might want to look into writing your own parser. ANTLR has a T-SQL dialect parser script here.
  • Magnum: A new Scala 3 Database Client
    4 projects | /r/scala | 14 Jun 2023
    Feature requests go here: https://github.com/jOOQ/jOOQ/issues/new/choose. Looking forward!
  • Looking4Library: A GraphQL client that has query methods on the generated types
    3 projects | /r/typescript | 4 Jun 2023
    You may have the fortune of being familiar with the jOOQ library for Java/JVM apps, that can generate domain models based on your database schema, as well as methods on these classes to perform queries. In case you're not, here an example Postgres schema:
  • Any library you would like to recommend to others as it helps you a lot? For me, mapstruct is one of them. Hopefully I would hear some other nice libraries I never try.
    21 projects | /r/java | 27 May 2023
    JOOQ. I love this one; its very very useful when you don't need/like any ORM, and it works with, for example Spring JDBC, so you don't have to write directly the SQL into Strings. The generator helps you with all the DAO layer, and if you want it generates JPA Models too.
  • Using Flyway for Database Setup
    2 projects | /r/Kotlin | 28 Apr 2023
    In our last episode (https://youtu.be/GLYL2bkNPjM) we decided to use jOOQ (https://www.jooq.org/), rather than JetBrains Exposed for our database access, but discovered that we were using Exposed to create our tables, so we couldn't remove it straight away.
  • 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
    I strongly advocate frameworks like https://javalin.io/ and Jooq (https://www.jooq.org/) if you are going to start a new project in Java.
    7 projects | /r/java | 19 Apr 2023
  • Are there any poplar alternatives to siesta?
    5 projects | /r/java | 15 Apr 2023

What are some alternatives?

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

Exposed - Kotlin SQL Framework

Querydsl - Unified Queries for Java

JDBI - The Jdbi library provides convenient, idiomatic access to relational databases in Java and other JVM technologies such as Kotlin, Clojure or Scala.

Spring Data JPA - Simplifies the development of creating a JPA-based data access layer.

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

Speedment - Speedment is a Stream ORM Java Toolkit and Runtime

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.

blaze-persistence - Rich Criteria API for JPA providers

SQLDelight - SQLDelight - Generates typesafe Kotlin APIs from SQL

Presto - The official home of the Presto distributed SQL query engine for big data

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