Java Mailing List Archive

http://www.junlu.com/

Google
Google
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
Subjects
JSP editor plugin for eclipse ?
org apache jasper JasperException: Unable to compile class for JSP
Tomcat: Connection reset by peer: socket write error
Cannot retrieve definition for form bean null
Struts Tiles Tutorial (free Struts training)
Where do I download Tomcat 4 0 6?
Data Access Object (DAO) pattern, example DAO 's
Where to download Tomcat v 4 1 24 from?
Tomcat 5 0 16 Requested resource not available
Oracle Connection Pooling in 3 2 2
Servlet : Session invalidate
Servlet action is currently unavailable
Tomcat/Struts Unicode Encoding/Decoding problems
Tomcat and webapplication specific java library path
Running a Simple JMS Example
Mapping in workers2 properties
org apache jasper JasperException
Cannot find message resources under key org apache struts action
   MESSAGE
problem with html:text bean throwing exception
Cannot find message resources under key org apache struts action MESSAGE
invalid direct reference problem with solution
Tool for jsp debug Try Sysdeo Eclipse Plugin
Tomcat 5 Cannot load JDBC driver class 'null ' SQL state: null
weblogic ejbc
java properties file
Jboss 3 2 3 Coyote Can 't re
Tomcat 5, Apache2 and mod jk2 integration problem
JBoss example problem new to J2EE
url string for connecting jboss to oracle
Value attribute of <html:checkbox
javax servlet ServletException: BeanUtils populate
HTTP Status 404 The requested resource is not available
5 0 18: Windows XP Pro vs Windows 2000
 
Page by Page Iterator

Page by Page Iterator

2003-11-21       - By Koala Gnu

 Back
Reply:     1     2     3     4     5     6  



Kancharlapalli,Sridhar wrote:

>     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.

>
>
Ok. This is the current solution used in my project but now we have the
following problem.

Suppose to have a Catalog C with a set of product P. Now consider to
have a find all
method on the ProductDAO the returns all the value objects Product.

This method is generally used in an internal timer task of the server
(so it is not used by the GUI).
Suppose P is a large set of products.
Since findAll is used internally by the server and the value objects are
not sent through the network, it is acceptable to use it.

Consider now to have a new requirement and the GUI has a new use case in
which all the products must be retrieved and showed page by page.

Our current solution is that the GUI retrieve only the primary keys of
the products and cache them. But from a server side I have to write a
new query. I cannot reuse the previouse one.

Now we are in the condition in which a lot of queries are duplicated
since in a case we retrieve all the objects and in other cases we
retrieve only the primary keys.

How I can avoid this?

Another question. If the GUI has a set of primary keys how I should
organize my code in order to allow the load of each single object?
Basically the question is if there is a description of this pattern on
the web.

Last question. Is it possible merge the two solution in only one? In
other words, I would like to use in some cases the Page by Page Iterator
pattern (and reuse most of the query used internally by the server) and
other cases the fetch of primary keys.

Thanks for your answer.

>     -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)


====================================================================
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.01 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>
</head>
<body text="#000000" bgcolor="#ffffff">
<br>
<br>
Kancharlapalli,Sridhar wrote:<br>
<blockquote type="cite"
cite="midF35B6F97F73AB14CBA82C409472C73FA02853F@(protected)">
 <meta http-equiv="Content-Type" content="text/html; ">
 <title></title>
 <meta content="MSHTML 5.00.3502.5390" name="GENERATOR">
 <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">&nbsp;</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">&nbsp;</div>
   <div align="left" class="OutlookMessageHeader" dir="ltr"><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&nbsp;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>
 </blockquote>
</blockquote>
<blockquote type="cite"
cite="midF35B6F97F73AB14CBA82C409472C73FA02853F@(protected)">
 <blockquote>
   <div align="left" class="OutlookMessageHeader" dir="ltr">&nbsp;</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&nbsp;and cache them at client. </span><
/font></font></font></div>
 </blockquote>
</blockquote>
<font size="2"><font color="#0000ff"><font face="Arial"><span
class="914142006-21112003">And you would do a complete query for&nbsp;only
those set of records that are to be displayed in the page.</span></font></font>
</font>
<blockquote type="cite"
cite="midF35B6F97F73AB14CBA82C409472C73FA02853F@(protected)">
 <blockquote>
   <div align="left" class="OutlookMessageHeader" dir="ltr">&nbsp;</div>
 </blockquote>
</blockquote>
Ok. This is the current solution used in my project but now we have the
following problem.<br>
<br>
Suppose to have a Catalog C with a set of product P. Now consider to
have a find all<br>
method on the ProductDAO the returns all the value objects Product.<br>
<br>
This method is generally used in an internal timer task of the server
(so it is not used by the GUI).<br>
Suppose P is a large set of products.<br>
Since findAll is used internally by the server and the value objects
are not sent through the network, it is acceptable to use it.<br>
<br>
Consider now to have a new requirement and the GUI has a new use case
in which all the products must be retrieved and showed page by page.<br>
<br>
Our current solution is that the GUI retrieve only the primary keys of
the products and cache them. But from a server side I have to write a
new query. I cannot reuse the previouse one.<br>
<br>
Now we are in the condition in which a lot of queries are duplicated
since in a case we retrieve all the objects and in other cases we
retrieve only the primary keys.<br>
<br>
How I can avoid this?<br>
<br>
Another question. If the GUI has a set of primary keys how I should
organize my code in order to allow the load of each single object?
Basically the question is if there is a description of this pattern on
the web.<br>
<br>
Last question. Is it possible merge the two solution in only one? In
other words, I would like to use in some cases the Page by Page
Iterator pattern (and reuse most of the query used internally by the
server) and other cases the fetch of primary keys. <br>
<br>
Thanks for your answer.<br>
<blockquote type="cite"
cite="midF35B6F97F73AB14CBA82C409472C73FA02853F@(protected)">
 <blockquote>
   <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">&nbsp;</div>
   <div align="left" class="OutlookMessageHeader" dir="ltr"><font
size="2"><span class="914142006-21112003">&nbsp;</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: <a class="moz-txt-link-freetext" href="http://www
.corej2eepatterns.com">http://www.corej2eepatterns.com</a> J2EE BluePrints:
<a class="moz-txt-link-freetext" href="http://java.sun.com/blueprints
/corej2eepatterns">http://java.sun.com/blueprints/corej2eepatterns</a> List
Archive:
<a class="moz-txt-link-freetext" href="http://archives.java.sun.com/archives
/j2eepatterns-interest.html">http://archives.java.sun.com/archives/j2eepatterns
-interest.html</a>
Unsubscribing: email "signoff J2EEPATTERNS-INTEREST" to
<a class="moz-txt-link-abbreviated" href="mailto:listserv@(protected)"
>listserv@(protected)</a> </div>
 </blockquote>
====================================================================
Companion Site: <a class="moz-txt-link-freetext" href="http://www
.corej2eepatterns.com">http://www.corej2eepatterns.com</a>
J2EE BluePrints: <a class="moz-txt-link-freetext" href="http://java.sun.com
/blueprints/corej2eepatterns">http://java.sun.com/blueprints/corej2eepatterns</a
>
List Archive:
<a class="moz-txt-link-freetext" href="http://archives.java.sun.com/archives
/j2eepatterns-interest.html">http://archives.java.sun.com/archives/j2eepatterns
-interest.html</a>
Unsubscribing: email "signoff J2EEPATTERNS-INTEREST" to
<a class="moz-txt-link-abbreviated" href="mailto:listserv@(protected)"
>listserv@(protected)</a>
</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)

©2008 junlu.com - Jax Systems, LLC, U.S.A.