High-Performance Java Persistence - bedrifter



Kursarrangør: Bouvet
Sted: Hele landet, Vi kommer til din bedrift
          
Type:Bedriftsinternt / Større grupper
Undervisningstid: Ta kontakt for avtale
Varighet: 3 days
Pris: Avtales

We provide course about High-Performance Java Persistence for businesses. 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.

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.

Agenda:
1) Introduction:
• O/R Mismatch
• JPA vs. Hibernate
• Logging SQL Statements
• Schema Management
• Integration Testing with Docker

2) Types and Identifiers:
• JPA and Hibernate Types
• Custom Hibernate Types
• The hibernate-types project
• JPA and Hibernate Identifiers
• Hibernate Identifier Optimizers (e.g. hilo, pooled, pooled-lo)

3) Connection Management:
• Connection Management and Hibernate Connection Providers
• Hibernate Connection Lifecycle
• Connection Monitoring
• Hibernate Statistics

4) Relationships:
• JPA and Hibernate Relationships
• Equals and Hashcode
• ManyToOne
• OneToMany
• OneToOne
• ManyToMany

5) Inheritance:
• JPA Inheritance Basics
• Single Table Inheritance
• Discriminator Column
• Joined Inheritance
• TablePerClass Inheritance

6) Batching and Statement Caching:
• Statement Lifecycle and Execution Plans
• Statement Caching
• Statement Batching and Cascade Operations
• Batching Update Operations
• SQL Injection

7) Persistence Context:
• Persistence Context and Flushing Basics
• Action Queue
• The AUTO FlushModeType
• Dirty Checking Mechanism
• Bytecode Enhancement Dirty Checking

8) Fetching:
• Direct and Natural id fetching
• DTO projections vs Entity queries
• LAZY vs. EAGER
• Query-time fetching
• Pagination queries

9) 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

10) 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

Course instructor: Vlad Mihalcea

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.

Target audience:
Businesses - This workshop is for any Java developer that happens to develop software that interacts with a relational database system.

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.

Vis flere tilsvarende kurs: