Book Image

jOOQ Masterclass

By : Anghel Leonard
Book Image

jOOQ Masterclass

By: Anghel Leonard

Overview of this book

jOOQ is an excellent query builder framework that allows you to emulate database-specific SQL statements using a fluent, intuitive, and flexible DSL API. jOOQ is fully capable of handling the most complex SQL in more than 30 different database dialects. jOOQ Masterclass covers jOOQ from beginner to expert level using examples (for MySQL, PostgreSQL, SQL Server, and Oracle) that show you how jOOQ is a mature and complete solution for implementing the persistence layer. You’ll learn how to use jOOQ in Spring Boot apps as a replacement for SpringTemplate and Spring Data JPA. Next, you’ll unleash jOOQ type-safe queries and CRUD operations via jOOQ’s records, converters, bindings, types, mappers, multi-tenancy, logging, and testing. Later, the book shows you how to use jOOQ to exploit powerful SQL features such as UDTs, embeddable types, embedded keys, and more. As you progress, you’ll cover trending topics such as identifiers, batching, lazy loading, pagination, and HTTP long conversations. For implementation purposes, the jOOQ examples explained in this book are written in the Spring Boot context for Maven/Gradle against MySQL, Postgres, SQL Server, and Oracle. By the end of this book, you’ll be a jOOQ power user capable of integrating jOOQ in the most modern and sophisticated apps including enterprise apps, microservices, and so on.
Table of Contents (26 chapters)
1
Part 1: jOOQ as a Query Builder, SQL Executor, and Code Generator
4
Part 2: jOOQ and Queries
11
Part 3: jOOQ and More Queries
16
Part 4: jOOQ and Advanced SQL
22
Part 5: Fine-tuning jOOQ, Logging, and Testing

Chapter 8: Fetching and Mapping

Fetching result sets and mapping them in the shape and format expected by the client is one of the most important tasks of querying a database. jOOQ excels in this area and provides a comprehensive API for fetching data and mapping it to scalars, arrays, lists, sets, maps, POJO, Java 16 records, JSON, XML, nested collections, and more. As usual, the jOOQ API hides the friction and challenges raised by different database dialects along with the boilerplate code necessary to map the result set to different data structures. In this context, our agenda covers the following topics:

  • Simple fetching/mapping
  • Fetching one record, a single record, or any record
  • Fetching arrays, lists, sets, and maps
  • Fetching groups
  • Fetching via JDBC ResultSet
  • Fetching multiple result sets
  • Fetching relationships
  • Hooking POJOs
  • jOOQ record mapper
  • The mighty SQL/JSON and SQL/XML support
  • Nested collections via the astonishing MULTISET...