Studiewijzer module 01
Wat is ORM / JPA


In deze les leer je wat ORM is, wat JPA is en wat Hibernate is en waar je dit kan vinden in de architectuur van de applicatie. Daarnaast komt kort aan bod hoe het in z’n werk gaat en zie je een klein voorbeeld gebaseerd op de HR database uit de introductie databases.

Vorm

De vorm is een sessie bij een whiteboard en een beeldscherm. Je dient na afloop van de sessie het huiswerk te maken en dat zal dan besproken worden in een volgende sessie.

Huiswerk

Clone het project Opleidingen van github naar je lokale cursus workspace. Importeer het project "intro-orm" binnen in die folder in je Eclipse.

Je ziet dan een aantal folders verschijnen waaronder src/main/java en src/main/resources.

Project structuur
Figure 1. De structuur van het huiswerkproject

In de src/main/resources folder staat een bestand persistence.xml. Dit bestand instrueert Hibernate onder andere hoe er een connectie met de database moet worden gelegd. In ons geval is dat een embedded H2 database.

In de src/main/java folder staat een aantal Java classes gedefinieerd. De structuur van de code van de huiswerk applicatie ziet er uit als in de volgende figuur:

huiswerk app

De code begint bij de class app.Main: deze heeft de main functie. In de package entities dien je je eigen entiteiten neer te zetten. Zoals je kan zien is er is ook al één entiteit beschikbaar: Region. Daarnaast is er in de lessen voor HuiswerkLes1 al één methode geïmplementeerd die de lijst van regios oplevert.

Wanneer je de Main class opent kan je via het menu menu:Run[Run as > Java Application] het programma starten. Je zou dan (ongeveer) de volgende console uitvoer moeten zien:

  ___       _                ___  ____  __  __
 |_ _|_ __ | |_ _ __ ___    / _ \|  _ \|  \/  |
  | || '_ \| __| '__/ _ \  | | | | |_) | |\/| |
  | || | | | |_| | | (_) | | |_| |  _ <| |  | |
 |___|_| |_|\__|_|  \___/   \___/|_| \_\_|  |_|


  _  _      _                   _     _             _
 | || |_  _(_)____ __ _____ _ _| |__ | |   ___ ___ / |
 | __ | || | (_-< V  V / -_) '_| / / | |__/ -_|_-< | |
 |_||_|\_,_|_/__/\_/\_/\___|_| |_\_\ |____\___/__/ |_|

Maak de opdrachten in de class HuiswerkLes1.

Houd er rekening mee dat je alleen de individuele tabellen
hoeft om te zetten naar entiteiten, zonder aandacht te
besteden aan:

- relaties tussen de tabellen,
- verplichte kolommen, of
- lengtes van kolommen.

Die beperkingen komen namelijk in Les 2 aan bod.


Opdracht: HuiswerkLes1.opdracht_1_toonRegio1
--------------------------------------------------------------------------------

Hibernate: select region0_.region_id as region_i1_4_0_, region0_.region_name as region_n2_4_0_ from regions region0_ where region0_.region_id=?
Regio 1: {"id":1,"name":"Europe"}

--------------------------------------------------------------------------------

Het huiswerk bestaat uit het maken van de opgaven in de class HuiswerkLes1. Je dient hier zelf entiteiten te maken voor de verschillende tabellen.

Vereenvoudiging van het huiswerk

Je hoeft nog geen rekening te houden met relaties tussen de tabellen. Je kan die kolommen één op één overnemen als waarde.

Je hoeft ook nog geen rekening te houden met constraints zoals not null of length

In de volgende les komen de relaties en constraints uitgebreid aan bod.

Huiswerk opdrachten todo lijst

Je kan de volgende opgaven maken in de class HuiswerkLes1:

  • ✓ opdracht_1_toonRegio1(EntityManager)

  • ❏ opdracht_2_toonRegio4(EntityManager)

  • ❏ opdracht_3_toonNederland(EntityManager)

  • ❏ opdracht_4_toonLokatie3100(EntityManager)

  • ❏ opdracht_5_toonLokatie1700(EntityManager)

  • ❏ opdracht_6_toonDepartment20(EntityManager)

  • ❏ opdracht_8_toonJobSalesManager(EntityManager)

  • ❏ opdracht_7_toonEmployee106(EntityManager)


« Vorige module Volgende module »