Queries had to be built using setters in a mutable type that didn't resemble SQL. Similar types are still there: SelectQuery, UpdateQuery, InsertQuery, DeleteQuery.
1
6
"Unfortunately" (luckily for me), my new coworkers at @CREALOGIX told me to look at their existing query builder when I told them about my ideas and about the jOOQ prototype. Aparently, everyone needed one, and they all built their own.
Theirs was decent, too.
1
7
So, I continued making jOOQ in my freetime. I realised that a lot of folks wanted jOOQ (and QueryDSL, at the time, the main alternative to jOOQ)
To secure my IP according to the understanding of Swiss law, I reduced my daytime workload to 80% and re-wrote much of it 2012-ish (?)
1
7
Realising that there are tons of big corporations using my work for free without contributing (that old whiney OSS maintainer story, I know), I thought, silly me. It was *me* who gave away everything for free. And that's when I started jOOQ, the business
blog.jooq.org/jooq-3-2-offer…
1
10
By now, jOOQ was no longer a mere "query builder", but a veritable internal DSL, using all of Java's language features to mimick SQL as much as possible.
1
7
I don't think other approaches to query building are viable, because APIs are hard enough to learn. They must map 1:1 to the query language, where this is possible.
Learning jOOQ's API is effortless. Everything is where you expect it. You can, but don't have to, read the docs.
1
10
I also don't think this style of fluent API is viable outside of query building (or rather, mimicking an external DSL. HTML building can also profit from this approach).
The fluent API generates a huge set of types and methods, so that only works well when mimicking a language.
1
7
So, long story short:
- 2001: My fluent API ideas were seeded
- 2006: Need for SQL query building was shown
- 2009: Need was confirmed, first prototype was created
- 2013: Business around jOOQ was created
- 2022: jOOQ's better than ever!
2
1
39
Since some of you might wonder, can a business thrive on Open Source? I'll let you be the judge. This is the annual revenue jOOQ licensing generates, approaching CHF 350k ARR (each line is 50k)
3
3
41




