New versions: Dev (3.15) | Latest (3.14) | 3.13 | 3.12 | 3.11 | 3.10 | 3.9 | 3.8 | Old versions: 3.7 | 3.6 | 3.5 | 3.4 | 3.3 | 2.6


Applies to ✅ Open Source Edition   ✅ Express Edition   ✅ Professional Edition   ✅ Enterprise Edition

In a more functional operating mode, you might want to write callbacks that map records from your select statement results in order to do some processing. This is a common data access pattern in Spring's JdbcTemplate, and it is also available in jOOQ. With jOOQ, you can implement your own org.jooq.RecordMapper classes and plug them into jOOQ's org.jooq.ResultQuery:

// Write callbacks to receive records from select statements
List<Integer> ids =

// Or more concisely, as fetch().map(mapper) can be written as fetch(mapper):

// Or using a lambda expression:
      .fetch(book -> book.getId());
// Of course, the lambda could be expanded into the following anonymous RecordMapper:
      .fetch(new RecordMapper<BookRecord, Integer>() {
          public Integer map(BookRecord book) {
              return book.getId();

See also the manual's section about the RecordHandler, which provides similar features


Do you have any feedback about this page? We'd love to hear it!

The jOOQ Logo