Hi, I don't know if this is true, but i think i've tried that solution before, and when i see the log generated from the ResultSet, it actually query all the data, and then selecting only the required record to show..
Yusuf. -----Original Message----- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Sent: Wednesday, April 26, 2006 2:22 PM To: [email protected] Subject: SV: pager in ibatis Hi there! <Yusuf wrote> I think it's better off making the paging logic yourself in the application, and then querying only the records you want to show, for example in oracle you can use the rownum to fetch the data like select * from (select rownum row, a.* from tabel1 as a) where row between 21 and 30 </Yusuf wrote> Why not use the ibatis the queryForList with "pageNumber and pageSize" parameters like this: sqlMap.queryForList("searchCompanies", searchText, ((pageNumber-1) * pageSize), pageSize); ?? Then you only keep track of the pageNumber you are at and don't need to make your query database specific... and you don't worry about the caching, it cache the page you are at and only that as far as I have understood it. You also need the countSearchCompanies, with an exactly the same query but with count in it ..... to find out how many pages it totally for that search. So you can specifiy page 1, 2, 3, 4 in e.g. your webpage. We use this strategy with success here: http://www.aguiden.no (search for sykkel (bike),gives you two pages) Since queryForPaginatedList don't have a count (??), I don't think it load the totally result set, only the page you are at, and have lazy loading of the next page... smooth. So far as I have understood it.... ??? Take care, Erlend ------------------------------------------- -----Opprinnelig melding----- Fra: Yusuf [mailto:[EMAIL PROTECTED] Sendt: 13. april 2006 02:44 Til: [email protected] Emne: RE: pager in ibatis I think it's better off making the paging logic yourself in the application, and then querying only the records you want to show, for example in oracle you can use the rownum to fetch the data like select * from (select rownum row, a.* from tabel1 as a) where row between 21 and 30 because using the queryForPaginatedList (without caching) will always fetch the entire result and then showing only the selected records, and if the record count is high (like thousands..) then the performance will be bad. cmiiw, Yusuf. -----Original Message----- From: John Chien [mailto:[EMAIL PROTECTED] Sent: Wednesday, April 12, 2006 11:27 PM To: [email protected] Subject: Re: pager in ibatis L:arry: Thank you for the information. The queryForPaginatedList() will return a list, then I can check for the existence of successive records by calling the isNextPageAvailable(). and go to that page by calling gotoPage(); However, I can not keep this list in my server due to concurrecy reason. Does that mean that I have to call the same method every time and give it the page number for it to return me the records ? I am doing the web development. How can I make use of this returned list in JSP with Struct development ? Should I keep the list in the session or request scope ? Thanks, John Chien Larry Meadors wrote: >queryForPaginatedList() > >Larry > > >On 4/12/06, John Chien <[EMAIL PROTECTED]> wrote: > > >>Dear sir: >> >>I have a feature that requires me to return query result of a selection >>statment in certain amount of successive records every time. >>This is just like a page. >> >>For example: >> >>SELECT id, name >>FROM employee; >> >>The selection result of this statement is a list. >>However, I want to only get 30 records every time. >>For the first call, I want to get the first 30 (1 - 30) records, for >>thext call, I would like to get the next 30 (31 - 60) records. >> >>How can I do this in Ibatis ? >> >>Thanks, >> >>John Chien >> >> >> >> >>
