Poszczególne projekty znajdują się w odpowiadających im branchach+
Go to file
Marcin Hutek fe91515744 readme created 2024-01-03 19:45:44 +01:00
.idea folder tree reorganized 2024-01-03 19:08:48 +01:00
database folder tree reorganized 2024-01-03 19:08:48 +01:00
results .gitignore configured and branches structure reorganized 2024-01-03 19:24:00 +01:00
src final version 2024-01-02 19:31:08 +01:00
.gitignore .gitignore configured and branches structure reorganized 2024-01-03 19:24:00 +01:00
README.md readme created 2024-01-03 19:45:44 +01:00
pom.xml preliminary test preparation 2023-12-31 18:41:09 +01:00
temporary_file.txt branches structure reorganization 2024-01-03 19:22:36 +01:00

README.md

PRA2024

Pracownia Programowania - Projekt 2 Autor: Marcin Hutek s485949

Wykorzystana baza danych zostala przygotowana przy uzyciu PostgreSQL i zawiera cztery tabele: 'films', 'films_info', 'category' oraz 'language'. Baza zostala wstepnie spopulowana tysiacem rekordow.

Backup bazy z jej kodem zrodlowym PRA2024.sql wygenerowany przy pomocy komendy pg_dump umieszczony został w folderze database w drzewku projektu.

ZMAPOWANE ENCJE

FilmModel

  • zmapowana podstawowa encja 'films' z bazy danych zawierajaca kolumny: 'film_id', 'film_title'
  • w relacji OneToOne z encją FilmInfoModel

FilmInfoModel

  • zmapowana encja 'films_info' bazy danych zawierajaca kolumny: 'film_id', 'description', 'release_year', 'language_id', 'length', 'rating', 'category_id' oraz pole ZonedDateTime - 'last_update'
  • w relacji OneToOne z encją FilmModel
  • w relacji ManyToOne z encją FilmCategoryModel
  • w relacji ManyToOne z encją FilmLanguageModel

FilmCategoryModel

  • zmapowana encja 'category' bazy danych zawierajaca kolumny: 'category_id', 'name'
  • w relacji OneToMany z encją FilmInfoModel

FilmLanguageModel

  • zmapowana encja 'language' bazy danych zawierajaca kolumny: 'language_id', 'language'
  • w relacji OneToMany z encją FilmInfoModel

SESJA ORAZ ZAPYTANIA

Main

  • zdefiniowanie sesji oraz wywolanie poszczegolnych zapytan

Queries

  • dwa query z parametrem: getFilmByLangYear oraz getFilmByLangCategory
  • query stronicowane: getAllFilmsByPage
  • metoda sluzaca do tworzenia nowych rekordow w bazie: createFilmModel

TESTY

QueriesTest

  • dla kazdego zapytania przygotowane zostaly po dwa przykladowe testy mockujace
  • dla metody sluzacej do dodawania rekordow do bazy przygotowany zostal jeden przykladowy test mockujacy sesje i sprawdzajacy czy rekord zostal poprawnie utworzony