JavaRush /Kurslar /All lectures for TK purposes /Tema boýunça taslama: Hibernate (2)

Tema boýunça taslama: Hibernate (2)

All lectures for TK purposes
Dereje , Sapak
Elýeterli

Bu günki maksatymyz – Hibernate boýunça ikinji taslamany amala aşyrmak. Munuň manysy - BD gurluşyny düşünmek, entitileri bar bolan tablisalara map etmek we maplamanyň dogry ýerine ýetirilendigini barlamak üçin minimal funksional goşmak.

Indi has giňişleýin:

  1. Dump-faýly indir we ony öz lokalyňda ýerleşdir. BD hökmünde, MySQL gurnama paketi bilen mysal hökmünde paýlanýan test BD ulanar. Dump BD ýagdaýyny berkitmek üçin gerek, sebäbi gündelik, aýlyk ýa-da ýyllyk üýtgemezligini kepillendirip bilmeris.
  2. Proýektiň şablony ýok, şuňa görä proýekti özüň döredýärsiň. Bu ähli zerur baglylyklar bolan maven proýekti bolmaly (hibernate-core-jakarta, mysql-connector-java, p6spy).
  3. IÝýa-da öz lokal BD-ni datasource hökmünde goş. Soňra Database sahypasynda movie shemasynyň üstüne baryp Alt+Ctrl+Shift+U düwmelerini bas (diňe Ultimate wersiýasynda işleýär). Bu movie shemasynyň ähli gurluşyny görkezýär (kolonlaryň atlary, açarlary we ş.m.). Takmynan şeýle görünýär:

    Kabul edýärin, bu ýere garamak gaty amatly däl. Kolon atlarynyň we düşündirişleriň görkezilmegini öçür:

    Netijede, analiz edip biljek BD shemasy emele gelýär:

  4. Shema çylşyrymly görünýär, ýöne ähli zat erbet däl. BD gurluşyny analiz etmek üçin nireden başlamaly diýen soraga jogap tapmaly. Doly dogry jogap ýok, emma meniň teklibim film tablisasyndan başlamaly. Mysal hökmünde birnäçe gatnaşygy seredeliň:
    • film we film_text tablisalarynyň arasyndaky baglanyşyk – bu açyk OneToOne baglanyşyk, sebäbi film_text tablisasynda film_id meýdany bar we ol film tablisasyndaky ID-e salgylanmaýandyr (ÝOK foreign key). Emma adyna we logikasyna görä, bu baglanyşyk bolmaly. Mundan başga-da, film_text tablisasynda film_id meýdany esasy açar bolup çykyş edýär, bu bir "film"-iň diňe bir "film text"-e eýe boljakdygyna kepillendirýär.
    • Indi film we category tablisalaryna seredeliň. Logika taýdan, bir film birnäçe kategoriýa eýe bolup biler. Bir kategoriýa, dürli filmlerde hem bolup biler. Mundan başga-da, bu iki tablisanyň arasynda film_category aralyk tablisasy bar. Şu aýdylana görä – açyk ManyToMany baglanyşyk.
    • film we language tablisalaryna seredeliň. Logika taýdan, bir film dürli dillere terjime bolup biler we beýleki filmler bir dilde bolup biler. Şeýlelikde, ManyToMany ity men edýär. Emma film tablisasynyň mazmunyna seretsek, her bir setir özboluşly filmdir. Setirde diňe bir language_id meýdan bar (original_language_id hem bar, ýöne ähli ýazgylarda ol null, şonuň üçin ony äsgermezlik edip bileris). Şeýlelikde, bir film diňe bir dile eýe bolup biler we bir dil dürli filmlerde bolup biler. Baglanyşyk – ManyToOne (baglanyşyk film-den language-e tarap gönükdirilýär).
  5. Indi esasy wezipe - ähli zerur entiti klasslaryny döretmek we olary movie shemasynyň tablisalaryna map etmek.
  6. Täze alyjy (customer tablisasy) döretmäge ukyby bolan usuly goş. Usulyň tranzaksiýaly bolmagy gerek, ýagny alyjynyň adresini BD-ä ýazarys, emma alyjynyň özüni - ýok, ýaly ýagdaýlara sezewar bolmaly däl.
  7. Tranzaksiýaly usul goş, alyjynyň öňünden kärende çykan filmi yzyna getirendigini suratlandyrýar. Alyjyny we kärende hadysasyny öz islegiňe görä saýla. Filmiň reýtingini täzeden hasaplama gerek däl.
  8. Tranzaksiýaly usul goş, alyjynyň dükana (store) baryp, şol ýerden inventory kärende alandygyny suratlandyrýar. Alyjy satyjynyň (staff) ýanyna geçirýärler we öňa töleg (payment) edýärler. Filmi (inventory arkaly) öz islegiňe görä saýla. Ýeke-täk çäklendirme - film kärende üçin elýeterli bolmaly. Diýmek, rental-da inventory boýunça ýazgynyň bolmaly däl ýa-da bu inventory-niň soňky kärendesi üçin rental tablisasynda return_date sütüni doldurylmaly.
  9. Tranzaksiýaly usul goş, täze film düşürildi, we ol kärende üçin elýeterli boldy diýip suratlandyrýar. Filmi, dilini, aktýorlaryny, kategoriýalaryny we ş.m. öz islegiňe görä saýla.
  10. Tablisalaryň gurluşyny üýtgedip bolmaýar. Emma öz teklipleriňi goýmak gerek. 4-nji nokatda bir kyn ýer tapdyk (film_text tablisasyndaky film_id meýdany üçin foreign key ýokluğu). BD gurluşynda başga şeýle "lekeler" bar bolsa - README faýlini proýektiň köküne goş we bu lekeleri beýan et.

Proýektiň düşündirilişi:

Teswirler
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION