  | Mailing List | | Home | | Forum Home | | JBoss - Java Application Server | | Struts - A MVC web framework | | Tomcat - JSP/Servlet container | | iText - An open source PDF Java Library | | JDOM - JDOM XML Parser | | J2EE - A mailing list for Java(tm) 2 Platform, Enterprise Edition | | J2EE Pattern - An interest list for Sun Java Center J2EE Pattern Catalog | | Servlet - A mailing list for discussion about Sun Microsystem's Java Servlet API Technology | | JSP - A mailing list about Java Server Pages specification and reference | |
Struts & Hibernate
|
|
|
  | | | Page by Page Iterator | Page by Page Iterator 2003-11-21 - By Kancharlapalli,Sridhar
Back Hi, Let me try to elaborate some of my observations and solutions I applied in the projects I have done. We had similar problem as you mentioned, Large queries can be really be expensive as they deal with large data,this makes the ValueListHandler pattern hard to implement. And more over requering might induct or remove some of the previous results which might not be acceptable in all business process. Best way to do it is to get the initial results from DAO layer and cache them at the client and use a simple Iterator pattern for page navigation. To optimize the results you can retrieve only the key elements from DAO and cache them at client. And you would do a complete query for only those set of records that are to be displayed in the page. -Sridhar Kancharlapalli. Hi all,
Some questions regarding the page by page iterator pattern.
I learnt how this patterns works looking at the petstore application. Then I tried to search on google a full description of this pattern, but I found only one document in spanish.
First question. Can anyone of you send me a link with a full description of this pattern?
Second question.
I have a DAO layer which perform a specific JDBC query Q that returns a set of data of type T. Now I want display this result page by page. If I use the Page by Page Iterator pattern, the query Q will be executed each time the user switch from a page to another (each time the start point of the cursor in the Resultset will change). But this is not acceptable if the query is very expansive.
I read a thread on theserverside.com but I do not understand what to do in this case. I think that the Page by Page Iterator is not appropriate in this case.
Third Question. Is it possible combine the Page by Page solution with another pattern that is more appropriate for complex queries? In this way the client know that the result is paged but it do not know how this paging is implemented (Page by Page or other patterns).
Thanks in advance for any help. =============================================== ===================== Companion Site: http://www.corej2eepatterns.com J2EE BluePrints: http://java.sun.com/blueprints/corej2eepatterns List Archive: http: //archives.java.sun.com/archives/j2eepatterns-interest.html Unsubscribing: email "signoff J2EEPATTERNS-INTEREST" to listserv@(protected)
==================================================================== Companion Site: http://www.corej2eepatterns.com J2EE BluePrints: http://java.sun.com/blueprints/corej2eepatterns List Archive: http://archives.java.sun.com/archives/j2eepatterns-interest.html Unsubscribing: email "signoff J2EEPATTERNS-INTEREST" to listserv@(protected)
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML><HEAD> <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859 (See http://iso-8859.ora-code.com)-1"> <TITLE></TITLE>
<META content="MSHTML 5.00.3502.5390" name=GENERATOR></HEAD> <BODY bgColor=#ffffff text=#000000> <BLOCKQUOTE> <DIV align=left class=OutlookMessageHeader dir=ltr><FONT size=2><FONT color=#0000ff><FONT face=Arial><SPAN class=914142006-21112003>Hi,</SPAN></FONT></FONT></FONT></DIV> <DIV align=left class=OutlookMessageHeader dir=ltr><FONT size=2><FONT color=#0000ff><FONT face=Arial><SPAN class=914142006-21112003></SPAN></FONT></FONT></FONT> </DIV> <DIV align=left class=OutlookMessageHeader dir=ltr><FONT size=2><FONT color=#0000ff><FONT face=Arial><SPAN class=914142006-21112003>Let me try to elaborate some of my observations and solutions I applied in the projects I have done.</SPAN></FONT></FONT></FONT></DIV> <DIV align=left class=OutlookMessageHeader dir=ltr><FONT size=2><FONT color=#0000ff><FONT face=Arial><SPAN class=914142006-21112003></SPAN></FONT></FONT></FONT> </DIV> <DIV align=left class=OutlookMessageHeader dir=ltr><SPAN class=914142006-21112003></SPAN><FONT size=2><FONT color=#0000ff><FONT face=Arial><SPAN class=914142006-21112003>We had similar problem as you mentioned, Large queries can be really be expensive as they deal with large data,this makes the ValueListHandler pattern hard to implement. And more over requering might induct or remove some of the previous results which might not be acceptable in all business process.</SPAN></FONT></FONT></FONT></DIV> <DIV align=left class=OutlookMessageHeader dir=ltr><FONT size=2><FONT color=#0000ff><FONT face=Arial><SPAN class=914142006-21112003></SPAN></FONT></FONT></FONT> </DIV> <DIV align=left class=OutlookMessageHeader dir=ltr><FONT size=2><FONT color=#0000ff><FONT face=Arial><SPAN class=914142006-21112003>Best way to do it is to get the initial results from DAO layer and cache them at the client and use a simple Iterator pattern for page navigation. To optimize the results you can retrieve only the key elements from DAO and cache them at client . And you would do a complete query for only those set of records that are to be displayed in the page.</SPAN></FONT></FONT></FONT></DIV> <DIV align=left class=OutlookMessageHeader dir=ltr><FONT size=2><FONT color=#0000ff><FONT face=Arial><SPAN class=914142006-21112003></SPAN></FONT></FONT></FONT> </DIV> <DIV align=left class=OutlookMessageHeader dir=ltr><FONT size=2><FONT color=#0000ff><FONT face=Arial><SPAN class=914142006-21112003>-Sridhar Kancharlapalli.</SPAN></FONT></FONT></FONT></DIV> <DIV align=left class=OutlookMessageHeader dir=ltr><FONT size=2><FONT color=#0000ff><FONT face=Arial><SPAN class=914142006-21112003></SPAN></FONT></FONT></FONT> </DIV> <DIV align=left class=OutlookMessageHeader dir=ltr><FONT size=2><SPAN class=914142006-21112003> </SPAN></FONT>Hi all,<BR><BR>Some questions regarding the page by page iterator pattern.<BR><BR>I learnt how this patterns works looking at the petstore application. Then I tried to search on google a full description of this pattern, but I found only one document in spanish.<BR><BR><B>First question.</B> Can anyone of you send me a link with a full description of this pattern?<BR><BR><B>Second question.</B><BR><BR>I have a DAO layer which perform a specific JDBC query Q that returns a set of data of <BR>type T.<BR>Now I want display this result page by page. If I use the Page by Page Iterator pattern, the query Q will be executed each time the user switch from a page to another (each time the<BR>start point of the cursor in the Resultset will change). But this is not acceptable if the query is very expansive.<BR><BR>I read a thread on theserverside.com but I do not understand what to do in this case. <BR>I think that the Page by Page Iterator is not appropriate in this case.<B><BR><BR>Third Question.</B> Is it possible combine the Page by Page solution with another pattern that is more appropriate for complex queries? In this way the client know that the result is paged<BR>but it do not know how this paging is implemented (Page by Page or other patterns).<BR><BR>Thanks in advance for any help. ==================================================================== Companion Site: http://www.corej2eepatterns.com J2EE BluePrints: http://java.sun.com/blueprints/corej2eepatterns List Archive: http://archives.java.sun.com/archives/j2eepatterns-interest.html Unsubscribing: email "signoff J2EEPATTERNS-INTEREST" to listserv@(protected) </DIV></BLOCKQUOTE></BODY></HTML> ==================================================================== Companion Site: http://www.corej2eepatterns.com J2EE BluePrints: http://java.sun.com/blueprints/corej2eepatterns List Archive: http://archives.java.sun.com/archives/j2eepatterns-interest.html Unsubscribing: email "signoff J2EEPATTERNS-INTEREST" to listserv@(protected)
|
|
 |