Java Data Access met Persistence API


Java is een programmeertaal en computerplatform. In 1995 werd Java door Sun Microsystems geïntroduceerd. Deze onderliggende technologie stuurt de allernieuwste programma’s aan, zoals hulpprogramma’s, games en bedrijfstoepassingen. Java wordt wereldwijd gebruikt op meer dan 850 miljoen pc’s en op miljarden apparaten, waaronder tv’s- en mobiele toestellen.

Java is een object georiënteerde programmeertaal en lijkt op de programmeertaal C en dus ook C++. Java is platform independant, hetgeen inhoudt dat Java op meerdere besturingssystemen kan draaien. Dit komt doordat de Java compiler niet omzet naar machinecode, maar naar bytecode. Als er dan wordt geëxecute, interpreteert de Java Virtual Machine en vertaalt naar machinecode.

Zo kan Java dus op veel, (bijna) alle besturingssystemen draaien. Vaak wordt Java verward met Javascript, terwijl de beide talen niet veel gemeen hebben. Javascript wordt gebruikt om webpagina’s op te maken. Daarnaast is Java een veel uitgebreidere programmeertaal dan Javascript.

In de cursus Java Data Access met Persistence API staat Object Relational Mapping met de Java Persistence API 2.0 op de agenda. Na een overzicht van de data access-mogelijkheden in Java, waaronder JDBC, en de uitdagingen waarmee zij worden geconfronteerd, worden de basisconcepten en architectuur van de JPA uitgelegd.

De rol van de EntityManager en het persistence.xml configuratiebestand wordt besproken en er wordt aandacht besteed aan de verschillen tussen versie 1.0 en 2.0 van de JPA-specificatie. Vervolgens wordt het concept van de JPA Entity besproken en komt de lifecycle van de Entities en hoe Entity-classes op databasetabellen worden gemapped aan de orde.

Ook de verschillende states die Entities kunnen hebben ten opzichte van de database, zoals new, persistent, detached and removed, worden besproken, net als het concept van merging. Eveneens wordt het gebruik van annotaties en XML mapping files en de rol van de verschillende properties en attributen uitgelegd.

De verschillende key generation-strategieën worden besproken en er wordt ingegaan op het mappen van association en inheritance relaties tussen entities. Ook de mogelijkheden van de JPA Query-taal, JPQL, komen aan de orde, evenals het gebruik van JPA-criteria en native SQL queries.

Vervolgens worden de functie en de werking van Entity callbacks uitgelegd, die onmiddellijk vóór en na de uitvoering van een persistence operation worden aangeroepen, en komt het alternatief van de Entity Listener classes aan bod. Onderdeel van de cursus zijn eveneens interceptors, die worden gebruikt voor crosscutting concerns als logging en security.

Tot slot wordt aandacht besteed aan het gebruik van JPA in een Java EE-applicatie, aan communicatie met EJB’s en aan de packaging van JPA entities. Ten slotte worden JPA-transacties behandeld in zowel een desktopomgeving en als een Java EE-omgeving.

Lunch en alle cursusmaterialen zijn bij de prijs inbegrepen.

Doelgroep

Deze cursus is bedoeld voor ervaren Java developers, die willen leren hoe je de Java Persistence API kunt gebruiken voor database access vanuit Java.

Voorkennis

Om aan deze cursus te kunnen deelnemen is ervaring met programmeren in Java en objectoriëntatie vereist. Kennis van databasestructuren en SQL is bevorderlijk voor een goede begripsvorming.

Duur

De duur van deze cursus is drie dagen.

Groepsgrootte

De groepsgrootte is maximaal vijf deelnemers.

Certificaat

Na afloop van deze opleiding ontvangen alle deelnemers een certificaat.

Gedurende de cursus worden de volgende onderwerpen besproken:

  • Module 1: Intro 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: Java Persistence API
    Traditional Persistence
    Object Relational Mapping
    Persistence API and EJB’s
    Entity Classes
    Entity Manager
    Persistence Context
    Entity Identity
    Entity Managers
    Entity Lifecycle
    Entity Relationships
    Persisting Objects
    Removing Objects
    Merging Objects
    Managing Identity
    JPA 1.0 versus 2.0
    New Features JPA 2.0
  • Module 3: Mapping Persistent Objects
    Mapping Annotations
    Table Annotation
    UniqueConstraint Annotation
    Column Annotation
    Id Annotation
    IdClass Annotation
    GeneratedValue Annotation
    Version Annotation
    Basic Annotation
    Lob Annotation
    Temporal Annotation
    Enumerated Annotation
    Transient Annotation
  • Module 4: Mapping Relationships
    Entity Relationship types
    Bidirectional OneToOne
    Bidirectional ManyToOne
    Bidirectional OneToMany
    Bidirectional ManyToMany
    Unidirectional OneToOne
    Unidirectional ManyToOne
    Unidirectional OneToMany
    Unidirectional ManyToMany
    Cascading persist
  • Module 5: Mapping Inheritance
    Inheritance Mapping Strategies
    Single Table per Class Hierarchy
    Single Table Data Model
    Advantages and Disadvantages
    Table per Concrete Class Strategy
    Table per Class Data Model
    Advantages and Disadvantages
    Joined Subclass Strategy
    Joined Data Model
    Advantages and Disadvantages
  • Module 6: JPA Query Language
    Java Persistence QL
    Projections
    Subqueries
    Joins
    Update
    Delete
    Queries
    Dynamic Query
    Static Query
    Criteria API
    CriteriaQuery interface
    Query Error Detection
    CriteriaBuilder
    Metamodel in JPA 2
  • Module 7: Entity Callbacks and Listeners
    Life Cycle Callback methods
    Entity Listeners
    Life Cycle Callback Rules
    Signature Life Cycle Callbacks
    Signature Entity Listeners
    @PrePersist and @PostPersist
    @PreRemove and @PostRemove
    @PreUpdate and @PostLoad
    Multiple Invocation Callbacks
    Invocation Order
  • Module 8: Interceptors
    Interceptors
    Interceptor Classes
    @AroundInvoke
    Example Interceptor
    Interceptor Lifecycle
    Interceptor Types
    Default Interceptors
    Exclude Interceptors
  • Module 9: Java EE integration
    Enterprise Java Beans
    Sessions Beans
    Statefull and Stateless
    JNDI lookups
    EJB injection
    Transaction-Scoped Persistence Context
    Extended Persistence Context
    Persistence Unit
    Packaging in EAR files
    Deployment Descriptors
  • Module 10: Transactions
    Transactions
    Demarcating Boundaries
    Container Managed
    Bean Managed
    Client Managed
    Transaction Attributes
    SessionSynchronization
    Before Completion
    After Completion
Plaats Duur Data
Houten - Standerdmolen 10 3 dagen 24 t/m 26 april 2019 Inschrijven >
Rotterdam - Provenierssingel 66 3 dagen 24 t/m 26 april 2019 Inschrijven >
Houten - Standerdmolen 10 3 dagen 26 t/m 28 juni 2019 Inschrijven >
Amsterdam - Hullenbergweg 280-308 3 dagen 26 t/m 28 juni 2019 Inschrijven >
Houten - Standerdmolen 10 3 dagen 21 t/m 23 augustus 2019 Inschrijven >
Rotterdam - Provenierssingel 66 3 dagen 21 t/m 23 augustus 2019 Inschrijven >