Ma az a feladatunk, hogy befejezzük a második projektet a Hibernate témakörben. Lényege, hogy megértsük az adatbázis szerkezetét, leképezzük az entitást a meglévő táblákra, és hozzáadjuk a minimális funkcionalitást, hogy ellenőrizzük, hogy a leképezés megfelelően történik-e.
Most részletesebben:
- Töltse le a dump fájlt , és telepítse a helyi gépére. Adatbázisként egy tesztadatbázist fogunk használni, amelyet példaként a MySQL telepítőcsomaggal együtt terjesztünk. A dump az adatbázis állapotának javításához szükséges, mivel nem tudjuk garantálni, hogy egy nap, hónap, év alatt nem változik.
- Nem lesz projektsablonunk, ezért saját maga hozza létre a projektet. Egy maven projektnek kell lennie minden szükséges függőséggel ( hibernate-core-jakarta , mysql-connector-java , p6spy ).
- Csatlakoztassa a helyi telepített adatbázisunkat adatforrásként az Idea-ban. Ezután az Adatbázis lapon vigye a kurzort a filmsémára, és nyomja meg a billentyűkombinációt
Alt+Ctrl+Shift+U(csak az Ultimate verzióban működik). Ez megmutatja a teljes filmséma szerkezetét (oszlopnevekkel, kulcsokkal stb.). Így néz ki:
Egyetértek, nem túl kényelmes nézni. Kapcsolja ki az összes oszlop és megjegyzés címének megjelenítését:
Ennek eredményeként egy már elemezhető adatbázissémát kap:
![]()
- Az áramkör bonyolultnak tűnik, de nem minden olyan rossz. Az adatbázis szerkezetének elemzéséhez meg kell találnia, hol kezdje el. Nincs egyetlen helyes válasz, de azt javaslom, hogy egy táblázattal kezdje
film. Vegyünk példának néhány kapcsolatot:- A
filmés a táblák közötti kapcsolatfilm_textexplicit OneToOne kapcsolat , mivel a táblánakfilm_textvan egy mezője,film_idamelyNEMtáblázatból származó azonosítóra utalfilm(nincs idegen kulcs). De név és logika alapján ennek a kapcsolatnak kell lennie. Ezenkívül a táblázatbanfilm_texta mezőfilm_idelsődleges kulcsként működik, amely garantálja, hogy egy „film” legfeljebb egy „filmszövegnek” feleljen meg. - Most nézzük a táblázatokat
filméscategory. Logikusan egy filmnek több kategóriája lehet. És egy kategória, esetleg más filmek. Ezenkívül van egy közbenső hivatkozási tábla a két tábla közöttfilm_category. A fentiek alapján ez egy explicit ManyToMany kapcsolat . - Megnézzük a táblázatokat
filméslanguage. A logika szempontjából a filmnek több nyelvre is lehet fordítása, és különböző filmek lehetnek ugyanazon a nyelven. Vagyis a ManyToMany javasolja magát . De ha megnézzük a táblázat tartalmátfilm, láthatjuk, hogy a táblázat minden sora egyedi film. És csak egy language_id mező van a sorban (van még original_language_id is, de minden rekordban null, így figyelmen kívül hagyhatjuk). Vagyis egy filmnek csak egy nyelve lehet. És egy nyelv, esetleg különböző filmek. A kapcsolat a ManyToOne (a kapcsolat filmről nyelvre irányul).
- A
- Most a fő feladat az összes szükséges entitásosztály létrehozása és leképezése a sématáblázatokra
movie. - Adjon hozzá egy metódust, amely új vevőt (ügyféltáblát) hozhat létre az összes függő mezővel. Ne felejtse el a módszert tranzakcióssá tenni (hogy ne kerüljön olyan helyzetbe, hogy a vevő címe szerepel az adatbázisban, de maga a vevő nem).
- Adjon hozzá egy tranzakciós módszert, amely leírja az „ügyfél elment, és visszaadott egy korábban kölcsönzött filmet” eseményt. Válasszon tetszőleges vevőt és kölcsönzési eseményt. A film értékelését nem kell újraszámolni.
- Adjon hozzá egy tranzakciós módszert, amely leírja a „vevő elment az üzletbe (üzletbe) és ott bérelt (bérleti) készletet (készletet)” eseményt. Ezzel egyidejűleg fizetést (kifizetést) hajtott végre az eladónak (személyzetnek). A filmet (leltáron keresztül) saját belátása szerint válassza ki. Az egyetlen megkötés az, hogy a filmnek kölcsönözhetőnek kell lennie. Vagyis vagy egyáltalán ne legyen készletnyilvántartás a kölcsönzésben, vagy a készlet utolsó kölcsönzésére vonatkozó táblázat visszatérési_dátum oszlopát kell kitölteni.
rental - Adjon hozzá egy tranzakciós módszert, amely leírja az „új filmet forgattak, és kölcsönözhetővé vált” eseményt. Filmet, nyelvet, színészeket, kategóriákat stb. saját belátása szerint választhat.
- A táblázat szerkezete nem módosítható. De javaslatokat kell tennie a javításra. A 4. bekezdésben azonosítottunk egy problémás helyet ( az idegen kulcs hiánya a táblázat
film_textmezőjében ). Nézze meg, vannak-e még ilyen „hibák” az adatbázis-struktúrában. Ha igen, adjon hozzá egy readme fájlt a projekt gyökeréhez, és írja le ezeket a hibákat.film_idfilm
Projekt elemzés:

GO TO FULL VERSION