The High-Performance Java Persistence training is aimed to level up your data access skills, covering JDBC, Hibernate, and many database essential topics for Oracle, SQL Server, MySQL or PostgreSQL.
Dette kurset levers kun som bedriftsinternt kurs. Ta kontakt med kurs@bouvet.no
Want to run your data access layer at high speeds?
1. DATABASE ESSENTIALS
Do you know how a relational database systems works behind the scenes?
2. JDBC
Do you know how the JDBC Driver executes statements and how you can configure it to boost application performance?
3. JPA AND HIBERNATE
Adding JPA and Hibernate annotations is fairly easy. But, do you know the performance implications of each JPA or Hibernate feature your application makes heavy use of?
Course goals
This course is meant to mind the gap between Java developers and database programming. Most often, Java developers are very skilled when it comes to programming languages, design patterns, frameworks and everything that's related to their programming language of choice.
However, the database is still uncharted territory, usually treated as a black box that we throw queries at and expect it to respond in no time.
With this workshop, I want to get Java developers to know more about RDBMS so that they can design their application data access layer accordingly. After attending this workshop, you'll know all sorts of tips that you can readily apply to your current enterprise project.
Taget audience
This workshop is for any Java developer that happens to develop software that interacts with a relational database system.
Although we are going to cover many aspects related to database systems, JDBC, JPA and Hibernate, it is best if the attendees have at least one or two years experience working with these technologies since the information provided by this training is much easier to be assimilated by middle and senior developers.
Prerequisites
It is recommended to bring your own notebook so that you can configure and run tests associated with the material we are going to go through this training. It is expected that attendees are familiar with Java, Maven, IDE systems like IntelliJ IDEA or Eclipse, as well as database systems like MySQL, PostgreSQL or in-memory databases like HSQLDB.
The attendees can set up the test environment we are going to use during the training by following the instructions provided in this GitHub repository.
Day 1.
Types and Identifiers
Connection Management
Relationships
Day 2.
Inheritance
Batching and Statement Caching
Persistence Context
Fetching
Day 3.
Transactions and Concurrency Control
Database, Application and Hibernate Caching
Mastering the underlying data access framework is of paramount importance when it comes to designing a high-performance application. However, sometimes, the best way to address a data-intensive task is to write the proper SQL query. SQL has changed tremendously over the years, yet many Java developers lag behind when it comes to advanced SQL query capabilities. By taking this SQL Master Class for Java Developers course, you will learn very useful SQL features such as Lateral Join, Cross Apply, Window Functions, CTE, Recursive queries, Pivot, JSON, and even more. The course covers Oracle, SQL Server, PostgreSQL, and MySQL,
so, not only it's going to help you with your current project, but it will be useful for future projects as well.
• O/R Mismatch
• JPA vs. Hibernate
• Logging SQL Statements
• Schema Management
• Integration Testing with Docker
• JPA and Hibernate Types
• Custom Hibernate Types
• The hibernate-types project
• JPA and Hibernate Identifiers
• Hibernate Identifier Optimizers (e.g. hilo, pooled, pooled-lo)
• Connection Management and Hibernate Connection Providers
• Hibernate Connection Lifecycle
• Connection Monitoring
• Hibernate Statistics
• JPA and Hibernate Relationships
• Equals and Hashcode
• ManyToOne
• OneToMany
• OneToOne
• ManyToMany
• JPA Inheritance Basics
• Single Table Inheritance
• Discriminator Column
• Joined Inheritance
• TablePerClass Inheritance
Batching and Statement Caching
• Statement Lifecycle and Execution Plans
• Statement Caching
• Statement Batching and Cascade Operations
• Batching Update Operations
• SQL Injection
• Persistence Context and Flushing Basics
• Action Queue
• The AUTO FlushModeType
• Dirty Checking Mechanism
• Bytecode Enhancement Dirty Checking
• Direct and Natural id fetching
• DTO projections vs Entity queries
• LAZY vs. EAGER
• Query-time fetching
• Pagination queries
Transactions and Concurrency Control
• ACID
• Phenomena
• Dirty Write,
• Dirty Read,
• Non-Repeatable Read,
• Phantom Read,
• Read Skew,
• Write Skew,
• Lost Updates
• 2PL (Two-Phase Locking)
• MVCC (Multi-Version Concurrency Control)
• Isolation levels and database concurrency control
• Logical vs. physical clock optimistic locking:
• OPTIMISTIC,
• OPTIMISTIC FORCE INCREMENT,
• PESSIMISTIC FORCE INCREMENT,
• PESSIMISTIC READ,
• PESSIMISTIC WRITE
• Versionless optimistic locking
• JPA physical and optimistic lock types
• Skip locked and queuing access
• Preventing lost updates in long conversations
Database, Application and Hibernate Caching
• Database caching
• Application-level caching
• Second-level caching
• Cache synchronization strategies
• Cache concurrency strategies
• READ ONLY,
• NONSTRICT READ WRITE,
• READ WRITE,
• TRANSACTIONAL
• Collection Cache
• Query Cache
Dette kurset levers kun som bedriftsinternt kurs. Ta kontakt med kurs@bouvet.no
Vlad Mihalcea is a Java Champion, one of the top Hibernate ORM project committers, passionate about concurrency challenges, high-performance enterprise solutions, and online transaction processing. Vlad wrote the High-Performance Java Persistence book which became one of the best-selling Java books on Amazon. Vlad regularly speaks at Java conferences all over the world.
He is passionate about enterprise systems, data access frameworks, and distributed systems. He wrote hundreds of articles about Hibernate on his blog , and he has a gold badge for the Hibernate, Java, and JPA tags on StackOverflow. He believes in Open Source Software, and he thinks every developer should get involved, one way or the other.
Finner du ikke det helt optimale kurset eller kombinasjonen av kurs? Da ordner vi det - sammen. Vi kan tilrettelegge kurs slik at de inneholder akkurat det dere har behov for. Vi kan sette opp et helt nytt kurs, eller tilpasse eksisterende kurs og materiell. Flere medarbeidere kan selvfølgelig også samles til et eget felles kurs, for maksimal effektivitet. Ta kontakt med meg for et forslag til gjennomføring og et tilbud basert på deres behov.