Założeniem aplikacji jest zaprezentowanie sposobu wykorzystywania Vaadin, który stanowi framwork do budowania UI, wraz zestawieniem go z bazą danych w tym przypadku H2.
Cały projekt jest otwarty i dostępny w repozytorium GitHub:
https://github.com/bykowski/vaadin-database
Działanie aplikacji
- Zapisywanie użytkownika do bazy danych (imię + nazwisko)
- Zweryfikowanie czy taki użytkownik istnieje w bazie danych – jeśli nie istnieje to utworzyć, w przeciwnym wypadku wyświetlić komunikat o błędzie.
- Dodanie użytkownika przekierowuje użytkownika na nową stronę. W parametrze jest podawany ID utworzonego użytkownika.
- Na nowej stronie możemy dokonać modyfikacji użytkownika – imię, nazwisko lub wiek.
- Na każdym etapie sprawdzane jest czy imię, nazwisko, wiek są poprawnymi danymi. W przeciwnym przypadku zostanie wyświetlony komunikat o błędzie.
Przekazywanie WARTOŚCI miedzy Stronami
Strona startowa uruchamiana jest domyślnie pod adresem localhost:8080/main
Wynika to z zadeklarowanej w klasie MainGUI adnotacji:
@SpringUI(path = "/main")
W przypadku dodania rekordu do bazy danych wykonywany jest redirect do nowej strony:
Page.getCurrent().open("/user-data?userId=" + personId, null);
Jako parametr userId podstawiona zostaje wartość stanowiąca id użytkownika.
Na stronie /user-data dokonywanie jest odczytywanie parametru wejściowego i zamiana go na typ Long:
Long userId = Long.parseLong(vaadinRequest.getParameter("userId"));
WALIDACJA Wartości
Walidacja wartości odbywa się z wykorzystaniem klasy StringUtils. Posiada ona metodę isNotBlank, która sprawdza czy dany String jest
- różny od zera;
- różny od wartości pustej;
- nie składa się z białych znaków (np. samych spacji).
Aby skorzystać z tej klasy należy dodać zależność w pliku pom.xml:
<dependency> <groupId>commons-lang</groupId> <artifactId>commons-lang</artifactId> <version>2.6</version> </dependency>
Zapis do Bazy danych
Zapis do bazy danych odbywa się z wykorzystaniem Hibernate i repozytorium Spring. Szczegółowe informacje na ten temat od podstaw znajdziesz tutaj: Kurs Hibernate