Not sure how much this is going to help because we're averaging about 15 seconds to transform a resultset of 1200 records into dynabeans. My goal really is to be able to dynamically traverse only the needed records within my resultset. So, when my resultset gets returned and I forward to page 1 (assuming we show 10 hits per page), I would fetch rows 1-10 and cache their data. Then when the user hits page 2, I would fetch 10 more rows from the resultset and append records 11-20 in the cache. So at this point, records 1-20 are cached and my resultset it pointing to record 21. Now, if the user hits the previous page button, my application would move the offset back to current offset - viewable count (11-10=1) and it would pull records 1-10 from the cache. This avoids calling the database for data. Then hitting next page would check and see that the resultset pointer is at 21 but offset < resultset offset, so assumes cache. It pulls records 11-20 from the cache list again without a call to the database. Is this what I am looking for and didn't know if a package already existed to do this. If so, great. If not, I need to invest some time in developing one for a project due tomorrow afternoon :-) Thanks Chris
-----Original Message----- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Sent: Monday, June 14, 2004 12:02 PM To: Struts Users Mailing List Subject: RE: Caching data from resultset Hmmm...maybe a RowSetDynaClass is what you need? http://jakarta.apache.org/commons/beanutils/api/org/apache/commons/beanutils /RowSetDynaClass.html It's as simple as: rs = stmt.executeQuery(MyQueryString); // Transform the resultSet to a "disconnected" set of DynaBeans RowSetDynaClassrowSet = new RowSetDynaClass(rs, false); // Transform the DynaBeans to a list object rows = rowSet.getRows(); Dennis "CRANFORD, CHRIS" <[EMAIL PROTECTED]> 06/14/2004 11:47 AM Please respond to "Struts Users Mailing List" <[EMAIL PROTECTED]> To 'Struts Users Mailing List' <[EMAIL PROTECTED]> cc Subject RE: Caching data from resultset Not a problem because I do have an OTN account. But I guess the question is whether it will work with Oracle 8i or only 9? In the past what I have done is used introspection to convert the resultset via metadata into a collection of objects that represent a record in the database and use this "collection" in the JSP layer. I typically notice that this is where the MAJORITY of my time is consumed creating these objects in memory, especially on very large data sets. Ideally I want to create a business wrapper than extends some form of caching resultset mechanism that permits me to save already viewed rows in memory and only "fetch" ahead rows from the resultset as the user jumps to the next page. Since oracle 8i only provides forward scrolling in the resultset, its important that previously viewed records be cached in the bean. Would all this be functionality available using CachedResultSet (ocrs12.zip from oracle) via 8i database and jdk1.2? Chris -----Original Message----- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Sent: Monday, June 14, 2004 11:07 AM To: Struts Users Mailing List Subject: RE: Caching data from resultset http://otn.oracle.com/software/tech/java/sqlj_jdbc/htdocs/jdbc9201.html ocrs12.zip appears to be a library containing Oracles imlementation of CachedResultSet and there is a JDK 1.2 version. However, it appears that you need to be a member of the OTN. Dennis "CRANFORD, CHRIS" <[EMAIL PROTECTED]> 06/14/2004 09:54 AM Please respond to "Struts Users Mailing List" <[EMAIL PROTECTED]> To 'Struts Users Mailing List' <[EMAIL PROTECTED]> cc Subject RE: Caching data from resultset But CachedRowSet isn't available in JDK 1.2.2_014 right? I'm limited to this JDK because IBM AIX version our OS runs doesn't support a JDK after this version. -----Original Message----- From: Freddy Villalba Arias [mailto:[EMAIL PROTECTED] Sent: Monday, June 14, 2004 8:22 AM To: Struts Users Mailing List Subject: RE: Caching data from resultset Hi Leon, I suppose that, since you're talking about caching the ResultSet, you've already given a thought to the amount of data that you'd be handling, consider it to be feasible and reasonable to cache it. This said, why don't you take a look at CachedRowSet? http://java.sun.com/j2se/1.5.0/docs/api/javax/sql/rowset/CachedRowSet.html http://java.sun.com/developer/Books/JDBCTutorial/chapter5.html I believe this could be somewhat similar to what you are looking for. HTH, Freddy. -----Mensaje original----- De: CRANFORD, CHRIS [mailto:[EMAIL PROTECTED] Enviado el: lunes, 14 de junio de 2004 13:45 Para: 'Struts Users Mailing List' Asunto: RE: Caching data from resultset This will work for the "paging" aspect, but I'm more concerned with ways to cache the "resultset" itself in the session to avoid repeative database calls on each page request. -----Original Message----- From: Rosenberg, Leon [mailto:[EMAIL PROTECTED] Sent: Monday, June 14, 2004 6:21 AM To: Struts Users Mailing List Subject: AW: Caching data from resultset Take a look at the pager taglib. http://jsptags.com/tags/navigation/pager/pager-taglib-2.0.html regards Leon > -----Ursprüngliche Nachricht----- > Von: CRANFORD, CHRIS [mailto:[EMAIL PROTECTED] > Gesendet: Montag, 14. Juni 2004 11:23 > An: '[EMAIL PROTECTED]' > Betreff: Caching data from resultset > > I am working with Oracle 8i and JDBC and was curious how others have > implemented paging through large record resultsets from a JSP > application without making a SQL call from page to page to retreive > the data and looping through records to place the cursor at the right > offset in the resultset. > > What I would prefer to do is make the database call once and cache the > resultset object and as the user navigates forward, fetch row-by-row > of only those required for the display. Then if the user navigates > backward, those > records are in a cache inside this bean so the cache is referenced for the > data (due to the fact Oracle's resultset is forward step only). > > Is anyone familiar or done anything like this in the past? > > _______________________________________________________ > Chris Cranford > Programmer/Developer > SETECH Inc. & Companies > 6302 Fairview Rd, Suite 201 > Charlotte, NC 28210 > Phone: (704) 362-9423, Fax: (704) 362-9409, Mobile: (704) 650-1042 > Email: [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] --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]