I have used pager taglib with sucess. Easy to use Manuel Alzola ----- Original Message ----- From: "Jacob Hookom" <[EMAIL PROTECTED]> To: "'OJB Users List'" <[EMAIL PROTECTED]> Sent: Saturday, March 29, 2003 5:31 AM Subject: RE: Webapp google queries: What is a good way to present multiple web pages with query results ?
> I followed Scott's example and put one together for MySql, with setting up > start index, end index with limit: > > public final class MySqlGenerator extends SqlGeneratorDefaultImpl > { > /** > * @param arg0 > */ > public MySqlGenerator(Platform arg0) > { > super(arg0); > } > > public String getPreparedSelectStatement(Query q, ClassDescriptor > cd) > { > String result = super.getPreparedSelectStatement(q, cd); > return this.addOffsetLimit(q, result); > } > > public String getSelectStatementDep(Query q, ClassDescriptor cld) > { > String result = super.getSelectStatementDep(q, cld); > return this.addOffsetLimit(q, result); > } > > private String addOffsetLimit(Query q, String stmt) > { > int startIndex = q.getStartAtIndex(); > int endIndex = q.getEndAtIndex() - startIndex; > > if (endIndex <= 0) > endIndex = -1; > > StringBuffer sb = new StringBuffer(stmt.length() + 16); > sb.append(stmt); > sb.append(" LIMIT "); > sb.append(startIndex); > sb.append(","); > sb.append(endIndex); > > System.out.println(sb.toString()); > return sb.toString(); > } > } > > | -----Original Message----- > | From: Scott Howlett [mailto:[EMAIL PROTECTED] > | Sent: Monday, March 24, 2003 10:28 AM > | To: OJB Users List > | Subject: RE: Webapp google queries: What is a good way to present multiple > | web pages with query results ? > | > | Mail list archive seems not to be working properly, otherwise I'd point > | you to previous postings.... > | > | 1. Use query.setStartAtIndex() and setEndAtIndex() to specify which > | records you actually want to retrieve in the query. > | > | 2. Implement the functionality that translates these parameters into > | something your database can understand by providing your own > | SqlGenerator class and pointing to it OJB.properties. > | > | For example, I did it like this for PostgreSQL: > | > | My OJB.properties entry is: > | > | SqlGeneratorClass=PostgreSqlStatementGenerator > | > | > | My subclass code is: > | > | import org.apache.ojb.broker.accesslayer.sql.SqlGeneratorDefaultImpl; > | import org.apache.ojb.broker.metadata.ClassDescriptor; > | import org.apache.ojb.broker.platforms.Platform; > | import org.apache.ojb.broker.query.Query; > | > | public class PostgreSqlStatementGenerator extends > | SqlGeneratorDefaultImpl { > | > | public SqlStatementGenerator(Platform pf) { > | super(pf); > | } > | > | public String getPreparedSelectStatement( > | Query query, > | ClassDescriptor cld) { > | String result = super.getPreparedSelectStatement(query, cld); > | return addOffsetLimit(query, result); > | } > | > | public String getSelectStatementDep(Query query, ClassDescriptor > | cld) { > | String result = super.getSelectStatementDep(query, cld); > | return addOffsetLimit(query, result); > | } > | > | private String addOffsetLimit(Query q, String stmt) { > | int startIndex = q.getStartAtIndex(); > | int endIndex = q.getEndAtIndex(); > | if (endIndex > 0) { > | if (startIndex < 0 || startIndex >= endIndex) { > | startIndex = 0; > | } > | stmt += " LIMIT " + (endIndex - startIndex); > | } > | if (startIndex > 0) { > | stmt += " OFFSET " + startIndex; > | } > | return stmt; > | } > | > | } > | > | Hope that helps, > | Scott Howlett > | > | > | > | -----Original Message----- > | From: Theo Niemeijer [mailto:[EMAIL PROTECTED] > | Sent: Friday, March 21, 2003 5:08 AM > | To: OJB Users List > | Subject: Webapp google queries: What is a good way to present multiple > | web pages with query results ? > | > | > | > | Maybe someone has a suggestion for me: > | > | The problem I am facing is that a user can have a very long list of > | results, and that list of items is presented in multiple pages of HTML > | (like Google :->) > | > | Let's assume that a query will have 10.000 resultitems, and I display 20 > | items per HTML page with a Next and a Previous button. > | > | - When I use a QueryIterator and for each next page just iterate 20 > | items further > | I assume that it will tie the database connection up for quite some > | time, > | and I can not even be sure that the user will ask for the next page of > | results ! > | > | - When I just get all the items in a large collection it will cost me a > | lot of "materialisation" time and a lot of memory. > | > | - When I only ask for the object identities and then get the pages by > | making a query > | for 20 identies in a kind of "select ... where id's in [....]" then the > | user would have to wait for that query, but it may be mcuh faster than > | the original query. > | > | - When I just re-submit the query for each page, and iterate to the > | correct 20 items then the user would have to wait for the query each > | time, but it may actually be fast because only 20 items would be > | "materialised". > | > | > | Anyone having experience with this problem and wanting to share best > | practices ? > | > | Regards, > | Theo Niemeijer > | > | --------------------------------------------------------------------- > | To unsubscribe, e-mail: [EMAIL PROTECTED] > | For additional commands, e-mail: [EMAIL PROTECTED] > | > | > | --------------------------------------------------------------------- > | To unsubscribe, e-mail: [EMAIL PROTECTED] > | For additional commands, e-mail: [EMAIL PROTECTED] > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]