Praktikum 4. Liidestamine andmebaasiga.

Kassasüsteem on täienenud, kliendilt on saabunud rohkelt lisasoove. Täienenud on:

Lisandunud on:

Muudatuste ülevaade:

  • Kõiki andmeid hoitakse nüüd relatsioonilises andmebaasis HSQLDB.
  • On lisandunud Hibernate'i tugi, mida kasutatakse kassasüsteemi Java-rakenduse mugavaks liidestamiseks SQL andmebaasiga.

Lisandunud Ant targetid:

  • ant startdb - käivitab HSQLDB andmebaasiserveri
  • ant dbmanager - käivitab andmebaasi graafilise kasutajaliidese

NB! Nii kassasüsteem ise (ant run) kui andmebaasi graafiline liides (ant dbmanager) eeldavad, et andmebaas on eelnevalt käivitatud! (Ava eraldi aken, käivita selles ant startdb ning jäta aken lahti/protsess jooksma.)





ÜLESANDED KLASSIS

Ülesanne 1. SQL päringud.

Käivitada taustal andmebaas (ant startdb) ning avada andmebaasi kasutajaliides (ant dbmanager). Koostada mõningaid lihtsamaid SQL-päringuid, mis kassasüsteemi andmebaasi vastu käivitades annaksid mõistlikke tulemusi. Testida päringuid läbi andmebaasi graafilise liidese. Koostada järgmised päringud:

  1. Päring, mis leiab kõik müüdud kaubad.
  2. Päring, mis leiab ühe ostutehingu kõik müüdud kaubad.
  3. Päring, mis lieab kõige populaarsema kaubaartikli (kaup, mida on ühikuliselt kõige rohkem ostetud).
  4. Päring, mis leiab kõige suurema käibega kaubaartikli (müüdud kogus * tükihind).



Ülesanne 2. Hibernate ja JPA annotatsioonid.

Hibernate'iga tutvumiseks võtame aluseks lihtsa näidisrakenduse: hibernateExercise.zip.

Täiendada algset rakendust, lisades mudeli klassides @Transient väljadele JPA annotatsioonid, mis kirjeldaksid õiged mappingud Java mudeliklasside ja andmebaasi tabelite vahel. Kui lahendus on õige, annab programm teile sellise väljundi. Midagi muud peale annotatsioonide muuta ei ole vaja.

Ant käsud:

  • ant startdb - andmebaasi käivitamine (tuleb teises aknas käivitada enne programmi käivitamist
  • ant run - programmi käivitamine. Prindib konsooli andmebaasist saadud andmed.

Näidisrakenduse andmemudel näeb välja selline:





ÜLESANDED KODUS

Ülesanne 1. SQL päringud.

Analoogselt esimesele klassiülesandele kirjutada ning esitada SQL-keelsed päringud, mis tagastavad järgmist:

  1. Päring, mis tagastab edetabeli klientidest, kes on toonud kassale kõige suuremat käivet.
  2. Päring, mis tagastab kuupäeva, millel on tehtud kõige rohkem käivet.

Päringute testimisel on ilmselt abiks eelnevalt andmebaasi pisut suurema hulga erinevate andmete sisestamine (pole reaalne testida küsitud päringute korrektset käitumist, kui andmebaasis on ainult 1-2 klienti või kõik ostud on sooritatud ühel ja samal kuupäeval).



Ülesanne 2. Kassasüsteemi täiendamine.

  1. Täiendada objekti Client.java ja tema hibernate annotatsioone.
    • Igal kliendil peaks olema perekonnanimi.
    • Perekonnanimi peab olema mapitud vastava andmebaasi väljaga.
    • Täiendada programmi kuvama kliendi perekonnanime ostude vaates.
  2. Realiseerida use caseides toodud kõrvalstsenaariumid A ja B.
  3. Realiseerida peakasutusloost punktid 5 ja 6 (kliendi allahindluse arvestamine ostu sooritamisel)

Ülesanded eeldavad, et andmeid loetakse ja kirjutatakse andmebaasi, kasutades selleks Hibernate'i!

Kodutööde esitamisel järgida esimese praktikumi materjalis toodud nõudeid SVN repositooriumi struktuurile! SalesSystemi uus kood laadida uude kausta, mitte kirjutada üle vana trunk!



VIITED



Sidebar
Page edit