How to design properly the logic of getting data from DB in the case of pagination (JAVA)? -


ok, building app in client , needs take data db. app won't take data db @ once based on pagination.

it has simple textbox user enter text , button search data.

requirements:

-if system downloaded data pageno, won't call server again.

-each time called server needs remember pageno, next time when user searching exact term search pageno=pageno+1 cos searched pageno already.

so here did:

private hashmap<string, integer> wordpagenohashmap=new hashmap<string, integer>(); button.addclickhandler(new clickhandler(){    @override         public void onclick(clickevent event) {         int pageno=0;         if(wordpagenohashmap.containskey(word)){              pageno=wordpagenohashmap.get(word); //note: page no increase if found result         }         else{             pageno=1;             wordpagenohashmap.put(word, pageno);         }         calltodb(word,pageno);    } });  public void resultfromdb(serverresult result){    int pageno=result.getpageno();    string word=result.getword();    list<string> textresult=result.getresult();    if(textresult!=null && textresult.size()>0){         pageno++;         wordpagenohashmap.put(word, pageno);        //show data here    }    else{        //show err here    } } 

i putting pageno++ @ result not @ time call.

am designning ok?

or

can u better design?

assuming understanding correct, search query retrieve reasonable number of records db (say 500) , store in pagedlistholder , set per page data whatever number want(say 20).

now have 2 options, when user clicks next call nextpage() , retrieve data set. (this might applicable infinite loading)

or if user clicks on particular page number (conventional pagination), pass on page number setpage() method , retrieve elements page.

i have used pagedlistholder example make easy understand. may use similiar class if available, or can write one.

i think achieves objective of not hitting db same set of data.

let me know if helped.


Comments

Popular posts from this blog

user interface - How to replace the Python logo in a Tkinter-based Python GUI app? -

objective c - Greedy NSProgressIndicator Allocation -

how to set an OCR language in Google Drive -