Tento týden až 80% sleva na e-learning týkající se jazyka C
50 % bodů zdarma na online výuku díky naší Slevové akci!

Lekce 13 - Filmová databáze v Java Spring Boot - Limit počtu výsledků

V předchozí lekci, Filmová databáze v Java Spring Boot - Získávání osob, jsme se naučili, jak se pracuje pokročile s repozitářem a zobrazili jsme si osoby.

V dnešní lekci se naučíme, jak limitovat počet výsledků z databáze. Naučíme se dva způsoby:

  • speciální repozitář pomocí stránkování a poté se podíváme na
  • anotaci @Query, kterou můžeme pro tyto účely rovněž využít.

Motivace

V minulé lekci jsme si řekli, že nám jednoduše repozitář nedovolí jen přes název metody určit, kolik výsledků z databáze chceme. My se ale určitě občas dostaneme do situace, kdy třeba uživatelů na stránce bude přes 1000. A zobrazovat hned 1000 výsledků je pro uživatele, který kouká na nějaký výpis zaregistrovaných, velký problém, jelikož je toho prostě moc a stránka je strašně dlouhá. Nehledě na to, že zatěžujeme i server a databázi.

Proto bychom my, jako programátoři, měli limitovat počet výsledků a ideálně nechat i uživatele vybrat, kolik výsledků na jedné stránce chce. To dělá náš frontend, ale my s tím zatím nepracujeme.

Dnes náš backend toto omezení naučíme a ukážeme si hned několik způsobů, jak jej implementovat.

"Brute force" řešení

Brute force řešení je způsob, jak se řeší problémy velice neefektivně. Je to řešení, které dokáže to, co potřebujeme, ale velice neelegantně z hlediska kódu, využití procesoru či paměti.

V našem případě by Brute force řešení bylo získat všechny výsledky z databáze a tyto výsledky následně oříznout na limit počtu výsledků. Toto rozhodně dělat nebudeme, i když to řešení je, protože bychom mohli přetížit databázi.

Stránkování

Stránkování výsledků je sice určené k něčemu trochu jinému, než jen limitovat jejich počet, ale můžeme jej jednoduše použít. Spousta řešení je stavěná na tomto.

PageablePersonRepository

Pojďme si vytvořit nový repozitář.


 

...konec náhledu článku...

Prémiový článek

Prémiový článek

Na itnetwork.cz se nachází největší a nejucelenější česká databáze s výukovými články, jejímž cílem je umožnit kvalitní vzdělání v oblasti IT úplně každému. Měsíčně zobrazíme k milionu článků a sklidíme desítky děkovných emailů, kde nám sdělujete, že jsme vám pomohli k lepšímu zaměstnání nebo vzdělání.

Ačkoli se snažíme držet většinu obsahu úplně zadarmo, udržovat síť v provozu a aktuální stojí obrovské úsilí. Proto je nějaký obsah, jako cvičení nebo odbornější články, přístupný pouze za body. Nebojte, nestojí to skoro nic :)

Popis článku

Požadovaný článek má následující obsah:

V Java Spring Boot lekci se naučíme limitovat počet výsledků z databáze a také se naučíme novým anotacím a novému typu repozitáře.

Omezená nabídka: Nauč se vše a ušetři

Koupit články a funkce postupně a po jednom 364 bodů
Koupit všechny aktuálně dostupné články v sekci se všemi funkcemi za exkluzivní cenu 309 bodů
Na svém účtu máš aktuálně 0 bodů
Koupí tohoto výhodného balíčku získáš přístup ke všem 15 článkům s kontrolou a certifikací a ještě navíc ušetříš 137 Kč. Nabídka je omezená pouze pro první články z kurzu a obsahuje exkluzivní slevu 15%.
309 bodů získáš za přidání svého článku na síť nebo odpovídá 908 Kč 772 Kč

Pozor, pokud si koupíš pouze tento článek, ztratíš nárok na speciální slevu 15% na balíček všech článků.

Pro přístup k článku potřebuješ 28 bodů
Na svém účtu máš aktuálně 0 bodů
28 bodů získáš za přidání svého článku na síť nebo odpovídá 70 Kč

Před koupí tohoto článku je třeba koupit předchozí díl

Koupí článku k němu získáš neomezený přístup a to napořád. Posuneš své znalosti zas kousek dopředu a zároveň nám pomůžeš udržovat celý projekt při životě a pomáhat vám tak k lepší budoucnosti.

Obsah článku spadá pod licenci Premium III, koupí článku souhlasíš se smluvními podmínkami.

Body získáš, když podpoříš naši síť. To můžeš udělat buď zasláním symbolické částky na podporu provozu nebo přidáním obsahu na síť.

Dobít body můžeš okamžitě např.:

Kartou SMS Převodem
Kartou SMS Převodem
Článek pro vás napsal Tomáš Střecha
Avatar
Autor se věnuje tvorbě backend webových aplikací v Javovém frameworku Spring boot, grafickému vykreslování v C++ společně s pomocí OpenGL.
Aktivity (3)