Úkol z lekce 10
Zobrazení tabulky z databáze
Úkolem je vytvořit webovou aplikaci zobrazující tabulku z databáze. Je to velmi podobný problém jako jsme řešili na hodině.
Část 1 - Prohlídka databáze
V databázi DailyPlanet v našem databázovém serveru MySQL
jsou 2 tabulky. Tabulka autor
,
se kterou jsme pracovali v hodině,
a tabulka clanek
,
se kterou budete pracovat v tomto úkolu.
Nejprve zkontrolujte obsah tabulky clanek
pomocí IntelliJ IDEA.
Pro připomenutí: V pravém panelu je záložka Database.
Vyberte data source DailyPlanet
(na hodině se jmenoval MariaDB - jdbc:mysql://localhost/DailyPlanet
).
Rozkliněte ho, uvidíte tabulky.
Vyberte tabulku clanek
,
klikněte na ni pravým tlačítkem myši
a zvolte Table Editor
.
Zkontrolujte, že má zhruba tuto strukturu:
Clanek_ID | Nazev | Autor_ID | CisloRevize |
---|---|---|---|
15514d7c-12ab-4540-ba6d-f8e155952bb9 | Řidič naboural do policejního auta | c705ef4e-5de0-4409-b537-957605df610c | 5 |
Část 2 - Javový program
Založte webovou aplikaci z předlohy WebovaAplikaceSValidaci
.
Vytvořte třídu Clanek
,
která bude mít privátní členské proměnné podle
tabulky clanek
.
import java.util.UUID; public class Clanek { private UUID id; private String nazev; private UUID autorId; private int cisloRevize; }
V této třídě dále vygenerujte několik constructorů a mírně je vylepšete:
public class Clanek { // ... privatni clenske promenne ... @Deprecated public Clanek() { } public Clanek(UUID id) { if (id == null) { id = UUID.randomUUID(); } this.id = id; } }
Dále vygenerujte get+set metody pro všechny členské proměnné.
Metodu setId
označte @Deprecated
.
Nakonec vygenerujte ještě metodu toString()
.
Takto připravenou třídu můžete použít v controlleru.
Kód pro přístup do databáze použijte velice podobný tomu z přednášky.
Nezapomeňte změnit dotaz SQL tak, aby správně vybral všechny sloupečky.
Nezapomeňte, že sloupečky, které se jmenují jinak,
než set
metody
ve vaší třídě Clanek
,
je nutné v dotazu SQL přejmenovat
(klauzulí as
).
Část 3 - Vylešená tabulka
Bylo by hezké, kdyby v tabulce na webu nebyl autor článku uveden
svým ID, ale svým jménem.
Program bude potřeba mírně vylepšit.
Nejprve v IntelliJ IDEA ověřte pomocí konzole SQL, že následující dotaz
vybere správná data.
Konzoli vyvoláte v záložce Database
kliknutím pravým tlačítkem myši
na data source DailyPlanet
a zvolením Open Console
.
SELECT Clanek_ID as ID, Nazev, KrestniJmeno, Prijmeni FROM clanek JOIN autor ON clanek.Autor_ID = autor.Autor_ID
Nyní opravte třídu Clanek
,
aby odrážela tuto virtuální tabulku
vzniklou spojením dvou fyzických tabulek v databázi.
Následně zobrazte takto získaná data ve webové stránce.
Odevzdávání úkolu
-
Odladěnou webovou aplikaci publikujte do vašeho cloudu pod názvem
/ukol10
. -
Zdrojový projekt zabalte 7-Zipem
a nahrejte také na váš cloud do složky
/ukoly
. -
Snímek obrazovky z prohlížeče vložte do galerie
Úkol z lekce 10 - Články z DB
na Facebooku. Pokud by galerie ještě neexistovala, založte ji prvním snímkem. Ke snímku do popisu napište adresu vaší webové aplikace.