Here’s a set of nice tutorials and insights into how to use jOOQ or jOOλ in your code:
jOOQ
Features
- Why You Should Execute jOOQ Queries With jOOQ
- Using jOOQ’s Implicit Join From Within the JOIN .. ON Clause
- jOOQ 3.17 Supports Implicit Join also in DML
- A Brief Overview over the Most Common jOOQ Types
- A Condition is a Field
- 10 Things You Didn’t Know About jOOQ
- Using SQL Server FOR XML and FOR JSON Syntax on Other RDBMS With jOOQ
- What’s a “String” in the jOOQ API?
- Quantified LIKE ANY predicates in jOOQ 3.12
- How to Use jOOQ’s UpdatableRecord for CRUD to Apply a Delta
- Type Safe Implicit JOIN Through Path Navigation in jOOQ 3.11
- Top 5 Hidden jOOQ Features
- How to Write a Quick and Dirty Converter in jOOQ
- JSR-308 and the Checker Framework Add Even More Typesafety to jOOQ 3.9
- Advanced SQL: Relational division in jOOQ
- JDBC batch operations with jOOQ
- Faster SQL Pagination with jOOQ Using the Seek Method
Fetching and mapping
- The Performance of Various To-Many Nesting Algorithms
- The Many Different Ways to Fetch Data in jOOQ
- Projecting Type Safe Nested TableRecords with jOOQ 3.17
- Use ResultQuery.collect() to Implement Powerful Mappings
- Using JDK Collectors to De-duplicate parent/child nested collections
- How to Typesafely Map a Nested SQL Collection into a Nested Java Map with jOOQ
- How to Fetch Sequence Values with jOOQ
- Ad-hoc Data Type Conversion with jOOQ 3.15
- jOOQ 3.15’s New Multiset Operator Will Change How You Think About SQL
- Nesting Collections With jOOQ 3.14’s SQL/XML or SQL/JSON support
- A Hidden jOOQ Gem: Foreach Loop Over ResultQuery
DML
Transactions
Testing
- How to Integration Test Stored Procedures with jOOQ
- Using H2 as a Test Database Product with jOOQ
- Using Testcontainers to Generate jOOQ Code
- Mocking JDBC Using a Set of SQL String / Result Pairs
- Easy Mocking of Your Database
Stored procedures
- The Best Way to Call Stored Procedures from Java: With jOOQ
- Calling Procedures with Default Parameters using JDBC or jOOQ
- Translating Stored Procedures Between Dialects
- Vendor Agnostic, Dynamic Procedural Logic with jOOQ
- Painless Access from Java to PL/SQL Procedures with jOOQ
- jOOQ 3.10 will Support SQL Server’s Table Valued Parameters
- Use jOOQ to Read / Write Oracle PL/SQL RECORD Types
- Using Oracle AQ via Java 8 Streams
- Using Oracle AQ in Java Won’t Get Any Easier Than This
- Use jOOQ inside your H2 database
Parser and translator
- The jOOQ Parser Ignore Comment Syntax
- Using jOOQ to write vendor agnostic SQL with JPA’s native query or @Formula
SQL transformation
- Create Dynamic Views with jOOQ 3.17’s new Virtual Client Side Computed Columns
- Automatically Transform Oracle Style Implicit Joins to ANSI JOIN using jOOQ
- Traversing jOOQ Expression Trees with the new Traverser API
Diagnostics
Spring Boot
- How to customise a jOOQ Configuration that is injected using Spring Boot
- How to Use jOOQ’s Commercial Distributions with Spring Boot
Code generation
- Why You Should Use jOOQ With Code Generation
- Cannot resolve symbol ‘VERSION_3_17’ in jOOQ generated code
- Using jOOQ 3.14 Synthetic Foreign Keys to Write Implicit Joins on Views
- How to Map MySQL’s TINYINT(1) to Boolean in jOOQ
- Stop Manually Importing Your ERD Export into jOOQ
Examples and usage tricks
- Use MULTISET Predicates to Compare Data Sets
- Cannot resolve symbol ‘VERSION_3_17’ in jOOQ generated code
- Formatting ASCII Charts With jOOQ
- Quickly Trying out jOOQ with Jbang!
- Never Again Forget to Call .execute() in jOOQ
- Using Java 13+ Text Blocks for Plain SQL with jOOQ
- Never Concatenate Strings With jOOQ
- How to Statically Override the Default Settings in jOOQ
- Map Reducing a Set of Values Into a Dynamic SQL UNION Query
- Using JDK 10’s Local Variable Type Inference with jOOQ
- A Functional Programming Approach to Dynamic SQL with jOOQ
- Prevent SQL Injection with SQL Builders Like jOOQ
- Using jOOQ’s ExecuteListener to Prevent Write Operations on a Connection
- How to Detect Slow Queries with jOOQ
- Implementing Client-Side Row-Level Security with jOOQ
- PostgreSQL’s Best-Kept Secret, and how to Use it with jOOQ
- Transform Your SQL Data into Charts Using jOOQ and JavaFX
- jOOQ Tip of the Day: Discover all Primary Keys
- Integrating jOOQ with PostgreSQL: Partitioning
- jOOQ Tip of the Day: Reuse Bind Values
- Java 8 Friday: More Functional Relational Transformation
- Debug logging SQL with jOOQ
- Loading CSV data with jOOQ
JDBC
- Setting the JDBC Statement.setFetchSize() to 1 for Single Row Queries
- MySQL’s allowMultiQueries flag with JDBC and jOOQ
- Simulating Latency with SQL / JDBC
- Let’s Review How to Insert Clob or Blob via JDBC
- How to Fetch Oracle DBMS_OUTPUT from JDBC
- How to FlatMap a JDBC ResultSet with Java 8?
- Hack up a Simple JDBC ResultSet Cache Using jOOQ’s MockDataProvider
- Use jOOQ to transform java.sql.ResultSet
- Oracle LONG and LONG RAW Causing “Stream has already been closed” Exception
R2DBC and async
- jOOQ’s R2DBC LoggingConnection to log all SQL statements
- Detect Accidental Blocking Calls when Using R2DBC
- Reactive SQL with jOOQ 3.15 and R2DBC
- Asynchronous SQL Execution with jOOQ and Java 8’s CompletableFuture
Database change management
- How to Simulate a Liquibase Migration using H2
- Flyway and jOOQ for Unbeatable SQL Development Productivity
JPA
- How to Integrate jOOQ with Hibernate
- jOOQ 3.10 Supports JPA AttributeConverter
- A Beginner’s Guide to Using Java EE with jOOQ
- Type Safe Queries for JPA’s Native Query API
jOOQ compared to other approaches
- When to Use jOOQ and When to Use Native SQL
- jOOQ vs. Hibernate: When to Choose Which
- No More MultipleBagFetchException Thanks to Multiset Nested Collections
- The Second Best Way to Fetch a Spring Data JPA DTO Projection
- A Frequent Question: Does jOOQ Have a First Level Cache?
- We’re Hacking JDBC, so You Don’t Have To
- Using Stored Procedures With JPA, JDBC… Meh, Just Use jOOQ
- How to Fetch Oracle 12c Implicit Cursors with JDBC and jOOQ
- How to Prevent JDBC Resource Leaks with JDBC and with jOOQ
- How to Execute SQL Batches With JDBC and jOOQ
- jOOQ vs. Slick – Pros and Cons of Each Approach
- Stop Trying to Emulate SQL OFFSET Pagination with Your In-House DB Framework!
- jOOQ’s Reason for Being
Insights into jOOQ development
- jOOQ 3.16 and Java EE vs Jakarta EE
- jOOQ Internals: Pushing up SQL fragments
- Top 10 SQL Dialect Emulations Implemented in jOOQ
- 5 Things You May Not Have Known About jOOQ
- Infinite Loops. Or: Anything that Can Possibly Go Wrong, Does.
jOOλ
- Use jOOλ’s Sneaky Throw to Avoid Checked Exceptions
- Lesser Known jOOλ Features: Useful Collectors
- Using jOOλ to Combine Several Java 8 Collectors into One
- How to Pattern-Match Files and Display Adjacent Lines in Java
- 2016 Will be the Year Remembered as When Java Finally Had Window Functions!
- How to use Java 8 Functional Programming to Generate an Alphabetic Sequence
- How to Use Java 8 Streams to Swiftly Replace Elements in a List
- How to Translate SQL GROUP BY and Aggregations to Java 8
- Using Java 8 to Prevent Excessively Wide Logs
- Let’s Stream a Map in Java 8 with jOOλ
- Don’t Miss out on Writing Java 8 SQL One-Liners with jOOλ or jOOQ
- When the Java 8 Streams API is not Enough
- SQL ResultSet Streams