

Java webová aplikace stránkování dat
Ahoj,
chtěl bych se zeptat zkušených jak řešit stránkování dat.
Příklad:
uživatel má v databázi nějaký seznam.. třeba seznam oblečení (tedy nějaké objekty, oblečení má barvu, velikost atd...).
Chci udělat výpis tohoto oblečení na profilu uživatele například po 10 kusech.
Můj postup:
Načtu data z DB do Listu a následně je proženu svým napsaným kusem kódu co my vyhodí List o velikosti 10 (podle čísla stránky na který je).
Je to tak v pohodě? Co když budu první list (ten načtený z db o velké velikosti například 10000000000000 kusů - a z něj pak budu vybírat 10 kusů, to zatěžuje zbytečně paměť, ne?).
Je nějaký lepší řešení? Třeba rovnou vybírat 10 kusů ? Vím že můžu nastavit omezení maximálního počtu vybraných kusů z db, ale jak zajistit aby to byl právě můj interval třeba na stránce číslo 4?
Tohle se řeší na úrovni SQL dotazu, většina DB má podporu stránkování, ale co máš za DB jsi zatajil...
Používám normál MySql, dá se to tedy řešit takhle? :
Chce první stránku po 10 kusech:
Chce druhou stránku po 10 kusech:
Tohle nebude fungovat, když ID nepůjdou po sobě, nebo tam bude "díra" (vymazané záznamy)...
http://www.slideshare.net/slideshow/view?login=Ewe aver&preview=no&slideid=1&title=efficient-paginati on-using-mysql
Tady to má o něco jednodušeji podané:
http://www.w3schools.com/php/php_mysql_select_limi t.asp
Jo, ale problém s tou fci LIMIT - OFFSET je ten, že když bude dělat OFFSET 100000000,15 tak stejně načte 100000015 záznamů s tím, že těch 100000000 se zahodí (na úrovni DB). V mém linku je i popis, jak to řešit.
EDIT: Pokud tam ale nemáš milióny záznamů, tak použij LIMIT - OFFSET a neřeš to...
Díky za rady.
V dokumentu nikde nepíše co znamenají čísla v LIMIT
LIMIT 0, 20
LIMIT 20, 20
LIMIT 40, 20
??
Druhé číslo asi znamená počet záznamů, ale první?
Aha, asi odkud se začíná
Díky vyřešeno.
A tohle nám ve škole neřeknou
Nespoléhej na to, že ti ve škole něco řeknou. Programování je hlavně o vyhledávaní informací...
Právě proto to teď asi hledám
Díky