Przed przystąpieniem do rozwiązywania zadań przeczytaj poniższe wskazówki
- Stwórz fork repozytorium z zadaniami.
- Utwórz projekt Mavena o nazwie JEE_Exam_6 ,nazwa bazy danych to exam6.
- Wykonaj poniższe polecenia:
$ cd ~/folderZprojektami/JEE_Exam_6 // użyj własnej lokalizacji
$ git init
$ git remote add origin https://github.com/CodersLab/WAR_JAVA_JEE_Exam_6.git // użyj własnego forka
$ git fetch
$ git branch master origin/master
$ git checkout master
Zwróć szczególną uwagę na adres repozytorium oraz nazwę folderu.
-
Rozwiąż zadania i skomituj zmiany do swojego repozytorium. Użyj do tego komend
git add nazwa_pliku
. Jeżeli chcesz dodać wszystkie zmienione pliki użyjgit add .
Pamiętaj że kropka na końcu jest ważna! Następnie skommituj zmiany komendągit commit -m "nazwa_commita"
Repozytorium może zawierać jedynie katalog
src
, pliki:pom.xml
,.gitignore
,README.md
-
Wypchnij zmiany do swojego repozytorium na GitHubie. Użyj do tego komendy
git push origin master
-
Stwórz pull request do oryginalnego repozytorium, gdy skończysz wszystkie zadania.
- podczas egzaminu możesz korzystać z notatek, kodu napisanego wcześniej, internetu i prezentacji,
- zabroniona jest jakakolwiek komunikacja z innymi kursantami oraz osobami na zewnątrz.
Powodzenia!
Kod wpisz w odpowiednim pliku, zgodnie z poleceniem zadania.
Nazwa bazy danych to exam6
- Uzupełnij zestaw zależności odpowiedzialnych za Spring MVC.
- Uzupełnij podstawowy zestaw zależności dla korzystania z Hibernate.
- Uzupełnij podstawowy zestaw zależności dla korzystania z Spring Data.
- Dodaj plik konfiguracyjny dla hibernate -
persistence.xml
. - Utwórz plik konfiguracyjny aplikacji oraz niezbędne ziarna.
- Utwórz kontroler
HomeController
a w nim akcję pod adresem/home
wyświetlającą z widok z pliku index.jsp , będzie ona zawierać linki do rozwiązań zadań.
- Utwórz następujące encje oraz określ walidacje:
User (nazwa tabeli tweeter_user
):
- id - klucz główny
- firstName - pole wymagane
- lastName - pole wymagane
- email - walidacja adresu email, pole nie wymagane
Tweet (nazwa tabeli tweeter_tweet
):
- id - klucz główny
- title - minimalna długość 5 znaków, maksymalna długość 50, pole wymagane
- tweetText - pole wymagane, maksymalna długość 160 znaków
- created (data dodania)
- Nazwy kolumn mają pozostać domyślne.
- Połącz te modele relacją jeden do wielu (dwukierunkową).
- W encji User pole odnoszące się do wielu tweetów nazwij
tweets
. - W encji Tweet analogicznie pole odnoszące się do jednej encji
User
nazwijuser
.
- Utwórz repozytorium dla encji
User
. - Utwórz repozytorium dla encji
Tweet
. - Utwórz metody umożliwiające pobieranie:
- Tweetów dla zadanego id użytkownika. Utwórz akcję wywołującą tą metodę, wyświetl tweety w widoku.
Akcja ma być dostępna pod adresem /user/{id}/tweets
. Dodaj link do strony głównej. id
- ma być parametrem adresu.
- Tweetów o tytule, który zaczyna się od ciągu znaków, np.
Programo
, posortowane od najnowszego względem daty utworzenia. Ciąg znaków do wyszukiwania ma być określony jako parametr.
Utwórz akcję wywołującą tą metodę, wyświetl tweety w widoku.
Akcja ma być dostępna pod adresem /user/search-tweets
. Dodaj link do strony głównej.
- Utwórz kontrolery dla encji
User
z mapowaniem/user
. - Utwórz kontrolery dla encji
Tweet
z mapowaniem/tweet
. - Utwórz akcje oraz formularz umożliwiające dodanie użytkownika, formularz ma być dostępny pod adresem
/user/add
. Sprawdzaj poprawność wprowadzanych danych. Dodaj link do strony głównej. - Utwórz akcje oraz formularz umożliwiające dodanie tweetu, formularz ma być dostępny pod adresem
/tweet/add
(formularz ma posiadać możliwość wybrania użytkownika). Sprawdzaj poprawność wprowadzanych danych. Dodaj link do strony głównej.
- Utwórz akcje dostępną pod adresem
/user/all
która wyświetli listę wszystkich dodanych użytkowników. Dodaj link do strony głównej. - Dodaj możliwość usuwania użytkowników - link do usunięcia w tabeli html dla każdego użytkownika.
- Dodaj możliwość edycji użytkowników - link do edycji w tabeli html dla każdego użytkownika.
Przykład interfejsu:
Imię | Nazwisko | Akcja | |
---|---|---|---|
Arek | Józwiak | [email protected] | Usuń Edytuj |
Marek | Marecki | [email protected] | Usuń Edytuj |