Poszczególne projekty znajdują się w odpowiadających im branchach+
.idea | ||
database | ||
results | ||
src | ||
.gitignore | ||
pom.xml | ||
README.md | ||
temporary_file.txt |
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