@rotnroll666 @duckdb @hannes Connection::prepareStatement, now that's a call I haven't seen in a while!
Java Champion, creator of https://jooq.org, the best way to write SQL in Java.
Will mostly tweet about Java, SQL, jOOQ, programming humour, and write at https://blog.jooq.org
Won't check Mastodon regularly, so best get in touch elsewhere!
@rotnroll666 @duckdb @hannes Connection::prepareStatement, now that's a call I haven't seen in a while!
@rotnroll666 I have enough "told you so" at home already. No need for "told you so" at work 🤌
@rotnroll666 They don't work, because if you follow them, you'll write your own sucky SQL builder for the dynamic SQL, and it will suck so bad that the next developer will rip it out and replace it with jOOQ, 3 years later.
In case it's not clear where it works best: Whenever you need client side type safety, improved mapping, dialect agnosticity, dynamic SQL (and chances are, you'll write a lot of this, once you embrace jOOQ).
But again, jOOQ doesn't care if you're querying tables or complex views! Use those, too!
I keep seeing "hot" takes that instead of using jOOQ's DSL, people should just use native SQL.
That's just a silly false dichotomy. jOOQ *encourages* you to create views, stored procedures, plain SQL templates, etc.
Use the DSL where it works best for you *in addition* to native SQL!
It is not forbidden to put a UNIQUE constraint on a FOREIGN KEY if you're modelling a 0-1 relationship, i.e. if there's at most 1 child per parent.
@javahippie Yeah, huh, would you look at that
New episode: "jOOQ"
Michael and Nikolay are joined by @lukaseder, the creator of jOOQ, to discuss what it is, some nice developer experience features it has, and some fun things he's come across from a Postgres perspective.
The real reason why it's called "reactive" programming
When you discover a bug while investing a bug:
https://www.youtube.com/watch?v=AbSehcT19u0
Every time I see "bait and switch" claims related to OSS, I'm just baffled by the cynicism and glass-2%-empty pessimism, as if every supplier is just out to rip them off big time.
Why not focus on the tremendous value offered for free (even if only for a limited time), instead?
Supply chain management is important, obviously. It includes total cost of ownership considerations:
https://en.wikipedia.org/wiki/Total_cost_of_ownership
But the term "bait and switch" hints at utter cynicism. Nothing grand arises out of cynicism.
The @neo4j JDBC Driver v6 is finally out: https://github.com/neo4j/neo4j-jdbc/releases/tag/6.0.0 supporting all statements (simple, prepared and callable) and a built-in SQL to Cypher translation layer using @JavaOOQ
Cheers to my colleagues and friends @mesirii @lukaseder and everyone behind the scenes.
@laxla@tech.lgbt What's complicated about setting up jOOQ? Have you seen these Maven/Gradle project templates? https://github.com/jOOQ/jOOQ-mcve
Me when the family asks what I do for a living:
https://buff.ly/4f0iV8j
JEP draft: Treat Loop Variables as Effectively Final in the Bodies of All for() Loops
https://buff.ly/3Uhd2ev
How to create jOOQ repositories in a Vaadin application:
https://buff.ly/4eMYTO8
@infosec812 @jer @rotnroll666 Go for it!
What I thought making jOOQ would be like (pic)
What it is actually like (working around RDBMS bugs):
https://buff.ly/3AuX3Cx
CQRS in the Small with Java Records and jOOQ https://buff.ly/4cg35nL
Nobody will remember:
- Your salary
- How “busy you were”
- How many hours you worked
People will remember:
- How you used exceptions for control flow
- How you jumped out of 3 layered loops with break label
- How you encoded 4 valued logic with Optional<Boolean>