A high-performance data access layer must resonate with the underlying database system. Knowing the inner workings of a relational database and the data access frameworks in use can make the difference between a high-performance enterprise application and one that barely crawls.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.
Review
"This book is a must-read for everyone aiming to push their relational databases to the limit with their Java application." -- Lukas Eder, Java Champion, founder and CEO of Data Geekery GmbH, the company behind jOOQ
"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."-- Rafael Winterhalter, Java Champion, creator of Byte Buddy
"Object to database mapping is one of the core requirements in many Java EE related projects. And the available frameworks make it easy for their users to get started. But as soon as you hit particular requirements around distributed transactions or performance you realize how much database and framework knowledge is required to implement them. Vlad made his insane experience available in an easy-to-read book. If you are dealing with JPA or Hibernate, this book is a must read."-- Markus Eisele, Java Champion, Developer Advocate at Lightbend
From the Author
The ebook (PDF, EPUB, Kindle) version and the video courses can be bought from my website.
Vlad Mihalcea is a top committer of the Hibernate project, passionate about concurrency challenges, high-performance enterprise solutions, and online transaction processing.
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. He believes in Open Source Software, and he thinks every developer should get involved, one way or the other.
If he doesn't find a suitable tool for a job, he takes initiative and starts a new open source project, like FlexyPool or the Hibernate-Types project.
Description:
A high-performance data access layer must resonate with the underlying database system. Knowing the inner workings of a relational database and the data access frameworks in use can make the difference between a high-performance enterprise application and one that barely crawls.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.
Review
"This book is a must-read for everyone aiming to push their relational databases to the limit with their Java application." -- Lukas Eder, Java Champion, founder and CEO of Data Geekery GmbH, the company behind jOOQ
"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."-- Rafael Winterhalter, Java Champion, creator of Byte Buddy
"Object to database mapping is one of the core requirements in many Java EE related projects. And the available frameworks make it easy for their users to get started. But as soon as you hit particular requirements around distributed transactions or performance you realize how much database and framework knowledge is required to implement them. Vlad made his insane experience available in an easy-to-read book. If you are dealing with JPA or Hibernate, this book is a must read."-- Markus Eisele, Java Champion, Developer Advocate at Lightbend
From the Author
The ebook (PDF, EPUB, Kindle) version and the video courses can be bought from my website.
vladmihalcea.com/books/high-performance-java-persistence/
About the Author
Vlad Mihalcea is a top committer of the Hibernate project, passionate about concurrency challenges, high-performance enterprise solutions, and online transaction processing.
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. He believes in Open Source Software, and he thinks every developer should get involved, one way or the other.
If he doesn't find a suitable tool for a job, he takes initiative and starts a new open source project, like FlexyPool or the Hibernate-Types project.