Java Data Access met Hibernate
Lesgeld
Hibernate Architectuur
Na een overzicht van de data access mogelijkheden in Java, waaronder JDBC, en de uitdagingen waar deze tegenaan lopen, worden de basis concepten en architectuur van het Hibernate Framework besproken.
Hibernate Configuratie
De rol van het Hibernate configuratie bestand wordt besproken en de mapping van Java classes op database tabellen komt aan de orde. Vervolgens wordt aandacht besteed aan de rol en de structuur van de mapping files en annotati
Hibernate Architectuur
Na een overzicht van de data access mogelijkheden in Java, waaronder JDBC, en de uitdagingen waar deze tegenaan lopen, worden de basis concepten en architectuur van het Hibernate Framework besproken.
Hibernate Configuratie
De rol van het Hibernate configuratie bestand wordt besproken en de mapping van Java classes op database tabellen komt aan de orde. Vervolgens wordt aandacht besteed aan de rol en de structuur van de mapping files en annotaties en de rol van de verschillende properties en attributes.
Sessions
De centrale positie van de Hibernate Session die wordt gecreëerd door de SessionFactory wordt besproken en er wordt aandacht besteed aan de verschillende states die Java objecten kunnen hebben ten opzichte van de database zoals persistent, transient and detached.
Mapping
Verschillende key generation strategieën worden besproken en ook komen het mappen van association en inheritance relaties op de database aan bod.
Hibernate Query Language
Vervolgens wordt aandacht besteed aan de mogelijkheden van de Hibernate Query taal, HQL, Hibernate criteria en het gebruik van native SQL queries.
Transactions
Tenslotte worden ook Hibernate transacties besproken, wordt het gebruik van annotaties als alternatief voor mapping files aan de orde gesteld en worden de verschillende vormen van Hibernate caching toegelicht.
Doelgroep Cursus Java Data Access
Ervaren Java developers die Hibernate willen gebruiken voor het benaderen van data in databases.
Voorkennis Java Data Access
Ervaring met programmeren in Java en object oriëntatie is vereist. Kennis van databases en SQL is bevorderlijk voor een goede begripsvorming.
Uitvoering Training Java Data Access
De concepten worden behandeld aan de hand van presentatie slides. Demo's worden gebruikt om de concepten te illustreren. De theorie wordt afgewisseld met oefeningen. De cursustijden zijn van 9.30 tot 16.30.
Certificering Cursus Java Data Access met Hibernate
De deelnemers krijgen na het goed doorlopen van de cursus een officieel certificaat Java Data Access met Hibernate.
Modules
Module 1 : Java Persistence
- Java Persistence
- Traditional Persistence
- Transparent Persistence
- Persistence Technologies
- Direct File I/O
- Serialization
- Java Database Connectivity
- JDBC Architecture
- Executing Statements
- Retrieving Results
- JDBC Drivers
- JDBC URL's
- Problems with JDBC
Module 2 : Hibernate Basics
- What is Hibernate?
- Hibernate Characteristics
- Hibernate Configuration
- Hibernate Configuration File
- Persistent classes
- Mapping Files
- Hibernate Architecture
- Hibernate Core Concepts
- Storing Objects
- Generated Table and SQL
- Primary Key Column
- Lifecycle States
- Persistence Lifecycle
Module 3 : Mapping Persistent Objects
- Class to Table Mappings
- Property Mapping
- Identifiers and Generators
- Hibernate Session
- Entities and Values
- Entity Lifecycle
- Persistent State
- Transient State
- Persistent Object Updates
- Automatic Dirty Checking
- Detached State
- Deleting Objects
- Merging
Module 4 : Mapping Relationships
- Many-to-one Associations
- Mapping to List, Map
- Mapping to Bag and Array
- Using Comparator
- One-to-one Associations
- Many-to-many Associations
- Value Type Collections
- Collections of Components
- Sorting Collections
- Cascading over associations
- Lazy versus Eager Loading
- Detached Objects and Proxies
- Polymorphic Associations
Module 5 : Mapping Inheritance
- Inheritance Mapping Strategies
- Single Table per Class Hierarchy
- Single Table Data Model
- Discriminator Columns
- Advantages and Disadvantages
- Table per Concrete Class Strategy
- Table per Concrete Class with unions
- Table per Class Data Model
- Advantages and Disadvantages
- Joined Subclass Strategy
- Joined Data Model
- Polymorphism
- Choosing an Inheritance Strategy
Module 6 : Queries and Criteria
- Hibernate Query Language
- HQL Parameters
- Named Queries
- Native SQL
- Criteria
- Restrictions
- Scrolling and Pagination
- Query Hints
- Join Fetching
- Subselect Fetching
- Batch Fetching
- Queries and Fetching Strategies
- Cartesian Product Problem
Module 7 : Transactions
- Java Transaction API
- JTA versus JDBC Transactions
- Transaction Configuration
- Hibernate Transaction API
- Isolation Levels
- Optimistic Locking
- Versioning
- Pessimistic Locking
- ThreadLocal Transactions
- Conversations
- Session Lifetime
- Concurrent Access
Module 8 : Hibernate Annotations
- Metadata
- Annotations Pros/Cons
- Configuring Hibernate Annotations
- Entity and table annotation
- Primary key annotations
- Column annotations
- Special
- Relation annotations
- Join column annotations
- Components
- Inheritance
- EJB3/JPA Annotations
Module 9 : Hibernate Configuration
- Configuration File
- HibernateUtils
- XML versus Annotations
- Connection Pools
- The promise of Cache
- Hibernate Caching Architecture
- First Level Cache
- Second Level Cache
- Cache Concurrency
- Configuring Second Level Cache
- Cache Regions
- Eviction