Ú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 DBna 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.
