jOOQ
jOOQ is a self-hosted developer tool that generates Java classes from database metadata and provides a fluent, type-safe SQL API.
What jOOQ is
jOOQ is a self-hosted developer tool that generates Java classes from database metadata and provides a fluent, type-safe SQL API. Its internal SQL DSL uses Java compilation and generics to check column types, row expressions, and syntax. Generated code can expose schema changes during compilation. Active Records support create, read, update, delete, optimistic locking, foreign-key navigation, and POJO mapping. The generator can create callable methods for database routines, and stored functions can appear in type-safe SQL. jOOQ transforms SQL expressions for target databases; supported dialects depend on the edition. The Open Source Edition lists ClickHouse, Derby, DuckDB, Firebird, H2, HSQLDB, MariaDB, MySQL, PostgreSQL, SQLite, Trino, and YugabyteDB. It also supports runtime schema overrides, row-level security, lifecycle SPI hooks, Java, Kotlin, Scala, and a CLI.
Good
- Generates code from database metadata
- Provides type-safe SQL construction
- Supports Active Record operations
- Lists many open-source databases
- Offers free Open Source Edition
Watch out
- Commercial licenses apply per developer workstation
- Dialect support varies by edition
- Self-hosted deployment is required
- Commercial plans exclude VAT
Who it suits
jOOQ suits Java, Kotlin, or Scala developers who want generated database code and compile-time SQL checks. Its editions also target teams needing commercial database support or premium support.
Verdict
jOOQ combines schema-driven code generation with a fluent SQL DSL and database-specific transformation. Its free edition supports listed open-source databases, while paid editions add commercial database coverage and support.
Plans and prices
From jOOQ's own pricing page, checked 8 Oct 2026.
| Plan | Price | What it gives you |
|---|---|---|
| Open Source Edition | Free | Latest versions of listed open source databases · Apache Software License 2.0 · Unlimited use |
| Express Edition | €99 a year | Supports listed databases including Oracle Express Edition, SQL Server Express Edition, and Microsoft Access · 99 € excl. VAT per floating developer workstation and year, including ongoing maintenance and support |
| Professional Edition | €399 a year | Supports listed commercial databases including Oracle and SQL Server · 399 € excl. VAT per floating developer workstation and year, including ongoing maintenance and support |
| Enterprise Edition | €799 a year | Broad enterprise database support · Premium support · 799 € excl. VAT per floating developer workstation and year, including ongoing maintenance and support |
The facts
Each one read from jOOQ's own pages, with the date it was checked.
What it does
- Code generation
- The code generator creates Java classes from database metadata so Java code can be checked against schema changes at compile time.checked 8 Oct 2026
- CRUD and records
- Generated Active Records support create, read, update, delete, optimistic locking, foreign key navigation, and POJO mapping.checked 8 Oct 2026
- Database support
- The Open Source Edition lists ClickHouse, Derby, DuckDB, Firebird, H2, HSQLDB, MariaDB, MySQL, PostgreSQL, SQLite, Trino, and YugabyteDB.checked 8 Oct 2026
- Integrations
- The licensing page lists dependencies or integrations including Spring, Hibernate, Liquibase, R2DBC, and Reactive Streams.checked 8 Oct 2026
- Licensing and limits
- Commercial licenses are required per developer workstation using jOOQ code, while build, test, and production server licenses are included.checked 8 Oct 2026
- Multi-tenancy
- jOOQ supports runtime database schema and table overrides and row-level security.checked 8 Oct 2026
- Purpose
- jOOQ generates Java code from a database and lets developers build type safe SQL queries through a fluent API.checked 8 Oct 2026
- Query lifecycle
- Its SPI allows custom behavior for logging, transaction management, event triggers, and SQL transformation.checked 8 Oct 2026
- Security and privacy
- The licensing FAQ states jOOQ does not require a license server and does not call home.checked 8 Oct 2026
- SQL dialects
- jOOQ can transform SQL expressions into equivalents supported by a target database, and its edition determines the supported dialects and versions.checked 8 Oct 2026
- SQL DSL
- jOOQ embeds SQL as an internal domain specific language in Java and uses Java's compiler and generics for column type, row value expression, and SQL syntax checks.checked 8 Oct 2026
- Stored procedures
- The code generator can generate callable methods for routines, and stored functions can be embedded in SQL statements in a type safe manner.checked 8 Oct 2026
- Support
- Free community support is offered through GitHub, Stack Overflow, user groups, and Reddit; paying customers also get included email support.checked 8 Oct 2026
- Who it is for
- The maker describes jOOQ editions for open source database users, power users needing advanced features and versioned support, smaller companies needing basic commercial database support, and large companies seeking premium support.checked 8 Oct 2026
The company
- Founded
- 2013checked 28 Sep 2026
- Headquarters
- St. Gallen, Switzerlandchecked 28 Sep 2026
Alternatives to jOOQ
- 1
SQLDelight
Free planOpen sourceAndroidiOSWebAPI7.9Free plan - 2
Fern
Free planOpen sourceWebAPILinuxmacOS7.8Free plan - 3
Swagger Codegen
Free planOpen sourceWebAPILinuxmacOS7.6Free plan - 4
APIMatic
Free planWebAPIExtensionLinux7.4From $99 a month - 5
Symfony MakerBundle
Free planOpen sourceAPILinuxmacOSSelf-hosted7.4Free plan - 6

quicktype
Free planWebAPILinuxmacOS7.3From $19 a month
