If you're interested in a print copy, then check out the Paperback version on Amazon, Amazon.co.ukAmazon.de or Amazon.fr.


This book is a journey into Java data access performance tuning. From connection management, to batch updates, fetch sizes and concurrency control mechanisms, it unravels the inner workings of the most common Java data access frameworks.


The first part aims to reduce the gap between application developers and database administrators. For this reason, it covers both JDBC and the database fundamentals that are of paramount importance when reducing transaction response times. In this first part, you'll learn about connection management, batch updates, statement caching, result set fetching and database transactions.


The second part demonstrates how you can take advantage of JPA and Hibernate without compromising application performance. In this second part, you'll learn about the most efficient Hibernate mappings (basic types, associations, inheritance), fetching best practices, caching and concurrency control mechanisms.


The third part is dedicated to jOOQ and its powerful type-safe querying capabilities, like window functions, common table expressions, UPSERT, stored procedures and database functions.


Authored by Vlad Mihalcea


Vlad Mihalcea is a Java Champion and one of the top Hibernate ORM project committers. He created the Hypersistence Optimizer tool, which scans your application configuration and mappings and tells you what changes you need to make to speed up your data access layer.

He's been answering thousands of questions about Hibernate and JPA on StackOverflow, for which he's got gold badges for Hibernate, Java, and JPA tags.

Whenever he finds something interesting, he likes to share it on his personal blog.

Choose a Pricing Option

Rafael Winterhalter

There is no resource that better summarizes the performance implications of using JDBC, either directly or via JPA and Hibernate.


If you are talking to a database on the JVM, add this book to your reading shelf.