Logo Czechitas
Vloženo: 5. 5. 2017

Ú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

  1. Odladěnou webovou aplikaci publikujte do vašeho cloudu pod názvem /ukol10.
  2. Zdrojový projekt zabalte 7-Zipem a nahrejte také na váš cloud do složky /ukoly.
  3. 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.